赞
踩
目录
本实验采用STM32CubeMX工具直接生成HAL库版本FreeRTOS,所以自己本机要装有STM32CubeMX。
1.选择自己的开发板型号
2.配置系统模式
tips:FreeRTOS自动接管系统滴答定时器,所以要把HAL_delay需要的时钟指向其它定时器,这里我使用TIM2来为系统提供时钟源,当然其他定时器也是可以的。
3.时钟源配置
4.配置时钟
1.选择FREERTOS选择CMSIS_V1版本
tips:CMSIS_V1与CMSIS_V2区别在于:V1满足Cortex-M0/M3/M4/M7系列使用;而V2版本满足所有Cortex-M系列的芯片的同时还兼容其它系列架构的CPU支持
2.创建三个任务:LED,BEEP,KEY任务
(1)创建LED任务:
(2)创建BEEP任务
tips:关于优先级,可以参照一下freertos源码
- typedef enum {
- osPriorityIdle = -3, ///< priority: idle (lowest)
- osPriorityLow = -2, ///< priority: low
- osPriorityBelowNormal = -1, ///< priority: below normal
- osPriorityNormal = 0, ///< priority: normal (default)
- osPriorityAboveNormal = +1, ///< priority: above normal
- osPriorityHigh = +2, ///< priority: high
- osPriorityRealtime = +3, ///< priority: realtime (highest)
- osPriorityError = 0x84 ///< system cannot determine priority or thread has illegal priority
- } osPriority;
(3)创建好的任务如下所示:
3.配置LED和BEEP引脚
tips:选择自己开发板上LED或者蜂鸣器的引脚即可,配置相应引脚对应的器件上电时默认为关闭的状态。配置好后的引脚如下所示:
4.工程生成配置
(1)工程相应配置
(2)库与.c.h文件的勾选
tips:一般这样会使得工程较大,也可以选择只生成需要的文件即可,但我这为了以后不麻烦便直接包含所有.c.h文件。
(3)生成工程
1.打开工程
2.在freertos.c的任务函数中加入电灯相应代码
tips:查看现象后发现LED灯与蜂鸣器呈现出预期的状态。下面自己动手去试试吧,电灯点到吐了兄弟们......
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。