|
上一期学习了任务的创建和删除,这一期学习任务的挂起与恢复。 所谓的挂起,也可以认为是暂停,将运行中的任务挂起后,任务将暂停运行,直至系统恢复任务的运行。
在FreeRTOS的API文档中找到任务挂起函数的介绍,函数需要的参数为我们想要挂起的任务句柄,如果传递为NULL则暂停我们的调用任务。同样的,在文档中也可以找到恢复任务函数介绍。 6 }: \; `) {5 g, p$ z" d$ E6 g8 B; c t, }: n- Y! c3 ^
% V0 K8 n4 i, V' h8 c8 g 7 y! W* A `* _4 l, V. B 接下来我们实现一个任务,目标是当LED1闪烁5次后挂起LED0闪烁的任务,当LED1再闪烁5次后恢复LED0闪烁的任务。& P- J( j. L* H' o) f9 P 我们在API中找到查询任务状态的函数eTaskGetState,该函数传入参数为任务句柄,返回参数为任务状态。LED0在进行vTaskDelay时是处于阻塞态,因此我们只需要判断LED0是阻塞状态还是挂起状态,再进行挂起和恢复操作。4 f* b. \; U7 c! a; u/ `& \
因此我们的代码如下
3 M, A% s7 ~, d% l# x 转载自:电路小白 如有侵权请联系删除- |: W2 M3 M. ]9 R/ q4 Y+ K+ ] - K @/ R3 V2 k7 I) e1 I: o 8 Y/ R& \8 C+ U5 p3 \5 x |
【福利三:雨露均沾·逢7狂欢】之四:用一个定时器同步另外两个定时器输出PWM
【逢7发帖赢大礼】STM32开发之WIFI实时时钟
【逢7发帖赢大礼】STM32开发之指纹识别!
【逢7发帖赢大礼】STM32开发之环境空气质量监测
【逢7发帖赢大礼】STM32开发之人体实时运动信息监测!
【逢7发帖赢大礼】STM32开发之IC门禁卡UID读取方法!
【逢7发帖赢大礼】全网最简单的Arduino_STM32开发环境搭建教程!
STM32F4中文用户手册
STM32F400、STM32F402 Cortex-M4超值单片机
SPI 高温读错最后一位?STM32F42xx 官方根治方案
微信公众号
手机版