用STM32Cubemx配置STM32F7 FreeRTOS

时间:2024-03-14 15:34:13

用STM32Cubemx配置STM32F7 FreeRTOS

先上图

用STM32Cubemx配置STM32F7 FreeRTOS
①选择使用FREERTOS选项,②FreeRTSO使用了Systick作为时钟节拍,而HAL库也使用了Systick作为HAL_Delay()和各种timeout的时钟基准。因此需要将HAL的时钟基准改为其他TIMER。一般使用一个基本定时器。
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
1、滴答率 1000,表示阻塞时间单位1毫秒
2、最大优先级有 7 个,数值越大,优先级越高
3、最小栈大小128,单位words,4Byte。可改大小,一般默认。
4、最大任务名长度
5、中断嵌套配置,一般默认,也可改
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
1、设置每个任务栈大小,根据1设置值2对应分配栈大小不同,在这里要提醒一下,栈分配过小或者不合理,程序会跑飞,调试时会进入硬件错误函数while里出不来,如下图。
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
其他设置默认,这里只是建立普通任务函数,而没有进行消息列队等配置。
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
NVIC配置
接下来贴出其他配置,诸如串口DMA,SPI,定时器
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
用STM32Cubemx配置STM32F7 FreeRTOS
最后生成代码
用STM32Cubemx配置STM32F7 FreeRTOS
配置就是以上这些了,代码有些地方还需注意,比如HAL库配置完成后,还需手动添加启动串口定时中断,这样外部中断才可用,DMA接收等网上很多例子,这里就不在累述。