1.创建好带有printf-stdarg.c的FreeRTOS的工程
2.修改main.c文件
- /* USER CODE BEGIN Includes */
- #include "FreeRTOS.h"
- #include "task.h"
- #include "timers.h"
- #include <stdio.h>
- #include <string.h>
- /* USER CODE END Includes */
- /* USER CODE BEGIN PV */
- static TaskHandle_t AppTask_Handle = NULL;
- static TimerHandle_t Timer1_Handle = NULL;
- extern int f_printf(const char *format, ...);
- /* USER CODE END PV */
- /* Private function prototypes -----------------------------------------------*/
- void SystemClock_Config(void);
- /* USER CODE BEGIN PFP */
- static void AppTaskCreate(void);
- static void TimerCallback(void);
- /* USER CODE END PFP */
- int main(void)
- {
- /*
- *
- */
- /* USER CODE BEGIN WHILE */
- UBaseType_t xReturn = pdFALSE;
- xReturn = xTaskCreate((TaskFunction_t)AppTaskCreate,
- (const char *) "APPTASKCREATE",
- (uint16_t) 128,
- (void *) NULL,
- (UBaseType_t) 1,
- (TaskHandle_t *)&AppTask_Handle);
- if(xReturn != NULL)
- {
- f_printf("Task Create PASS.\r\n");
- vTaskStartScheduler();
- }
-
-
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */
- }
- /* USER CODE BEGIN 4 */
- static void AppTaskCreate(void)
- {
- BaseType_t xReturn = pdFALSE;
-
- Timer1_Handle = xTimerCreate( (const char *) "TIMER1",(TickType_t)1000,
- pdTRUE, (void*) 1,(TimerCallbackFunction_t)TimerCallback);
-
- if( Timer1_Handle !=NULL)
- f_printf("Timer1 Create PASS.\r\n");
-
- xReturn = xTimerStart(Timer1_Handle,0);
-
- if(xReturn != pdFALSE)
- {
- f_printf("Timer1 START.\r\n");
- vTaskDelete(AppTask_Handle);
- }
-
- }
- static void TimerCallback(void)
- {
- HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_1);
- }
- /* USER CODE END 4 */
复制代码
|