FreeRTOS学习记录-软件定时器
目录
一.简介
FreeRTOS提供了定时器功能,是软件定时器,他的精度没有硬件定时器那么高,但是在硬件定时器不够的情况下处理一般任务足够了。
软件定时器主要分为两大类:单次定时器和周期定时器。
单次定时器:运行一个周期后会自动停止,若要再次启用须由软件启动定时器。
周期定时器:可周期执行的定时器。
二.API
软件定时器功能开启
在使用FreeRTOS的软件定时器的时候须先开启相关的宏,如下:
使能软件定时器:![]()
设置软件定时器的优先级:
![]()
设置软件定时器队列深度:
![]()
设置软件定时器任务的堆栈大小:
![]()
软件定时器的创建(动态创建)

pcTimerName:软件定时器名字
xTimerPeriodInTicks:软件定时器周期
uxAutoReload:用于设置是周期定时器还是单次定时器
pvTimerID:软件定时器的ID,多个软件定时器的回调函数可以是一个,在回调函数中可以通过这个ID去判断执行不同的操作
pxCallbackFunction:回调函数
返回值:
NULL:软件定时器创建失败
其他值:软件定时器创建成功的句柄
软件定时器的启动
在创建完后必须手动启动软件定时器

xTimer:软件定时器句柄
xTicksToWait:阻塞时间,为0立即启动软件定时器
软件定时器的停止
![]()
xTimer:软件定时器句柄
xTicksToWait:阻塞时间,为0立即停止软件定时器
三.代码实现
变量声明

软件定时器创建

启动软件定时器

回调函数实现

四.实验现象

可以看到单词软件定时器只运行一次,周期软件定时器周期运行,周期为1S。单次软件定时器再次运行需要手动调用定时器启动函数去启动它。
CAN解析工具免费下载:https://download.csdn.net/download/qq_45631231/91981307?spm=1001.2014.3001.5503
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐


所有评论(0)