- STM32CubeMX中,Example中没有基于NUCLEO-F429ZI开发板的FreeRTOS示例代码,尝试NUCLEO-F413ZH的FreeRTOS例程修改芯片型号,发现有很多报错,放弃;
- 直接基于Board新建NUCLEO-F429ZI的代码,选用demo,则CLOCK, LED, USB, ETH, USART3等都已配置初始化,按照默认就行。
- 在middleware中选择FREERTOS,CMSIS-V1即可。FREERTOS基本配置按照默认。在Tasks and Queues中,增加一个任务,命名为task_LED1,函数名为task_LED1_fun。完成配置后生成代码。
- 打开生成的代码,屏蔽ETH和USB的初始化代码(否则初始化不通过,程序不能正常运行)
增加usart3作为printf输出(代码可参考NUCLEO-F429ZI的example:UART_Printf); - 在main.c中
StartDefaultTask函数主循环中,增加如下代码:
printf(“freertos\r\n”);
osDelay(1000);
task_LED1_fun函数主循环中,增加如下代码:
HAL_GPIO_TogglePin(LD1_GPIO_PORT, LD1_PIN);
osDelay(500); - 编译烧录 ,复位启动。可以观察到串口3定时1秒输出freertos,LED1以1秒的周期闪烁。