|
上一期学习了任务的创建和删除,这一期学习任务的挂起与恢复。 所谓的挂起,也可以认为是暂停,将运行中的任务挂起后,任务将暂停运行,直至系统恢复任务的运行。0 L b" _1 g' s5 z
在FreeRTOS的API文档中找到任务挂起函数的介绍,函数需要的参数为我们想要挂起的任务句柄,如果传递为NULL则暂停我们的调用任务。同样的,在文档中也可以找到恢复任务函数介绍。7 q& G. } J# m; U ; M+ g3 ]0 _( m; w n $ t9 }+ {) v. b7 {' H, Z
. H6 i7 g6 U7 C" C1 r6 ~, f t6 k 接下来我们实现一个任务,目标是当LED1闪烁5次后挂起LED0闪烁的任务,当LED1再闪烁5次后恢复LED0闪烁的任务。 * [" f. t) C/ w# Q2 \: y$ I0 V ~ 我们在API中找到查询任务状态的函数eTaskGetState,该函数传入参数为任务句柄,返回参数为任务状态。LED0在进行vTaskDelay时是处于阻塞态,因此我们只需要判断LED0是阻塞状态还是挂起状态,再进行挂起和恢复操作。8 ]) b; t6 d- `7 I$ p( z! T- u, r
因此我们的代码如下
: c) u% u0 f4 {- ?) V Q, V a 转载自:电路小白3 c: u! N/ p, G8 {" l W& L 如有侵权请联系删除 7 Y: u( ^2 l u7 ^1 P# a% X ! h2 U* l8 r7 k+ B: Q% {# r |
《STM32CubeMX2 实战课程》学习笔记5+CubeMX2生成的Uart初始化代码中没有使能
《STM32CubeMX2 实战课程》学习笔记4+FreeRTOS中的SysTick错误及改正
使用stm32C542做的低功耗密码锁示例
《STM32CubeMX2 实战课程》学习笔记1+由MX2生成MDK5项目并打开
《STM32CubeMX2 实战课程》学习笔记3.+sleep/stop/standby低功耗模式的入口
《STM32CubeMX2 实战课程》学习笔记2+MX2生成的MDK5工程中添加已存在文件(*.c / *.h)
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
微信公众号
手机版