一。软件定时器概念及应用
1.软件定时器定义
就是软件实现定时器。
2.FreeRTOS软件定时器介绍
如上图所示,Times的左边为设置定时器时间,设置方式可以为任务设置或者中断设置;Times的右边为定时器的定时相应,使用CalBack相应。
FreeRTOS软件定时器工作原理
软件定时器可以参考一下手机的闹钟。单次响应与多次响应。
二。软件定时器函数应用
1.功能需求
- 使用软件定时器功能完成闹钟功能设计
- 当闹钟到达时,可根据执行动作,触发相关的led亮灭
2.API
(1)xTimerCreate()创建一个定时器
(2)xTimerStart()启动定时器
(3) xTimerReset()重启软件定时器
(4)pvTimerGetTimerID()获取软件定时器标识符值
(5)xTimerChangePeriod()修改软件定时器周期值
3.功能设计
如上图所示,需要三个部分,用户在串口端设置时钟参数,RTC作为定时器的核心,并驱动GPIO
(1)串口命令定义
1.设置实时时钟 参数头:年-月-日,小时:分钟:秒 realtime:2019-2-19,16:31:00
2.设置闹钟参数 参数头:小时:分钟:秒,是否重复,操作LED动作 alarmtime:16:32:40,0,0
(2)功能业务划分
1.实时时钟:RTC功能开发
2.命令参数配置:串口解析功能开发
3.软件定时功能:软件定时器
4.多任务消息同步:消息队列
4.功能实现
(1)Cubemx配置
1.配置RTC
2.配置串口
3.创建任务
4.创建消息队列
(2)实时时钟读写操作
1.设置实时时钟
2.读取实时时钟
(3)命令解析任务
1.使能串口接收中断
2.串口中断发送消息队列
3.解析命令字符串
4.解析实时时钟字符串
5.解析闹钟字符串
6.计算闹钟与实时时钟间隔
(3)软件定时器回调函数
1.定时器打印实时时钟
2.闹钟回调函数
(4)LED处理任务
LED处理任务
5.功能现象