1.软件定时器:
软件定时器允许设置一段时间,当设置的时间到达之后就执行指定的功能函数,被定时器
调用的这个功能函数叫做定时器的回调函数。回调函数的两次执行间隔叫做定时器的定时周期,
简而言之,当定时器的定时周期到了以后就会执行回调函数。
2.软件定时器功能:
单次定时器:(例如定时1S,当定时时间到了之后执行一次回调函数,然后定时器停止运行。需要手动重新启动。)
周期定时器:(例如定时1S,每当定时时间到了之后执行一次回调函数,然后定时器停止运行。自动重新启动。)
复位软件定时器:提供了一种思路,例如设置当LCD背光打开后,如果5S之内唤醒键没有被按下则自动熄灭。如果5S内任何时刻被按下了,从按下这个时刻其再亮5S。
3.软件定时器配置:
# define configUSE_TIMERS 1 // 设置为1 时候,定时器服务任务会在启动FreeRTOS调度器时候自动创建。
#define configTIMER_TASK_PRIORITY //设置软件定时器服务任务的任务优先级,可以为 0~( configMAX_PRIORITIES-1)。
#define configTIMER_QUEUE_LENGTH //此宏用来设置定时器命令队列的队列长度。
#define configTIMER_TASK_STACK_DEPTH //此宏用来设置定时器服务任务的任务堆栈大小,单位为字,不是字节!,对于 STM32 来说一个字是 4 字节。由于定时器服务任务中会执行定时器的回调函数,因此任务堆