配置FreeRTOSConfing.h文件
//计数时间周期1ms
//开启定时器
//设置软件定时器优先级
//设置软件定时器队列长度
//设置软件定时器堆栈大小
记得引入定时器头文件times.h
定义软件定时器句柄
TimerHandle_t Tim_Report_Sat;
定义初始化,开始,停止和回调
//软件定时初始化
void Tim_Report_Sta_Init(void)
{
if (Tim_Report_Sat == NULL)
{
Tim_Report_Sat = xTimerCreate("Report Sta", //定时器名字,用于调试目的,方便识别不同的定时器
REPORT_STA_TIME, //定时器周期,单位系统时钟节拍
true, //选择周期模式还是单次模式,若参数为pdTRUE,则表示选择周期模式,若参数为pdFALSE,则表示选择单次模式
0, //定时器ID,当创建不同的定时器,但使用相同的回调函数时,在回调函数中通过不同的ID号来区分不同的定时器
Tim_Report_Sta_cb); //回调函数
}
//返回值,创建成功返回定时器的句柄,由于FreeRTOSCongfig.h文件中heap空间不足,或者定时器周期设置为0,会返回NULL
}
//软件定时开始
void Tim_Report_Sta_Start(void)
{
if (Tim_Report_Sat)
{
xTimerStart (Tim_Report_Sat, 0);// 第1个参数是定时器句柄。第2个参数是成功启动定时器前的最大等待时间设置,单位系统时钟节拍
}
}
//软件定时停止,对于循环调用的功能一般就不需要调用Stop
void Tim_Report_Sta_Stop(void)
{
if (Tim_Report_Sat)
{
xTimerStop(Tim_Report_Sat, 0);// 第1个参数是定时器句柄。第2个参数是成功停止定时器前的最大等待时间设置,单位系统时钟节拍
}
}
//回调函数
static void Tim_Report_Sta_cb(TimerHandle_t xTimer)
{
/*自己想实现的功能*/
}