硬件平台:STM32F103CT6
软件平台:CubeIDE 1.8.0
实现效果:创建两个TASK,TASK1中实现500ms周期闪烁LED1,TASK2中实现1000ms周期闪烁LED2
1.创建CubeIDE STM32工程
2.选择芯片信号:STM32F103C8T6
3.设置项目名称、保存路径
4.设置RCC时钟,选择晶体/陶瓷震荡器
5.我使用STLink,因此将Debug设置成JTAG(5pins),根据实际情况选择。使用FreeRTOS时时钟源不要使用SysTick(滴答定时器),我选择的是TIM1
6.根据实际情况配置LED1和LED2
7.打开FreeRTOS功能,Interface接口选择CMSIS_V1,CMSIS_V2可不可以我没有尝试
8.使能Newlib setting(不使能会有警告,具体作用没有了解)
9.创建第一个任务LED1_TASK,其他选默认即可
10.按照同样方法创建第二个任务LED2_TASK
11.在时钟树将时钟开到最大72MHz
12.生成代码时,我习惯将每个.c和.h单独分开生成
13.然后生成代码,在MX_FREERTOS_Init()中创建任务
14.在两个任务中加入LED灯周期闪烁的代码,将程序下载到芯片
实验成功,两个LED按照程序周期闪烁!
FreeRTOS更复杂的使用可在此基础上进行实现。
FreeRTOS学习参考:Free RTOS学习