FreeRTOS创建任务(3)

一、任务挂起和恢复API函数

有时候需要暂停某个任务的运行,过一段时间以后在重新运行。这个时候要是使用任务删除和重建的方法的话,那么任务中变量保存的值肯定丢失了!FreeRTOS提供了解决这种问题的方法,那就是任务挂起和恢复,当某个任务要停止运行一段时间的话就将这个任务挂起,当要重新运行这个任务的话就恢复这个任务的运行。FreeRTOS的任务挂起和恢复API函数如下表所示:

函数描述
vTaskSuspend()挂起一个任务
vTaskResume()恢复一个任务的运行
xTaskResumeFromISR()中断服务函数中恢复一个任务的运行

1、函数vTaskSuspend()
此函数用于将某个任务设置为挂起态,进入挂起态的任务永远都不会进入运行态。退出挂起态的唯一方法就是调用任务恢复函数vTaskResume()或xTaskResumeFromISR()。函数原型如下:

void vTaskSuspend(TaskHandle_t xTaskToSuspend)
参数描述
xTaskToSuspend要挂起的任务的任务句柄,创建任务的时候会为每个任务分配一个任务句柄。如果使用函数xTaskCreate()创建任务的话,那么函数的参数pxCreatedTask就是此任务的任务句柄,如果使用函数xTaskCreateStatic()创建任务的话那么函数的返回值就是此任务的任务句柄。也可以通过函数xTaskGetHandle()来根据任务名字来获取某个任务的任务句柄。注意!如果参数为NULL的话表示挂起任务自己

2、函数vTaskResume()
将一个任务从挂起态恢复到就绪态,只有通过函数vTaskSuspend()设置为挂起态的任务才可以使用vTaskRexume()恢复!函数原型如下:

void vTaskResume(TaskHandle_t xTaskToResume)
参数描述
XTaskToResume要恢复的任务的任务句柄。

3、函数xTaskResumeFromISR()
此函数是vTaskResume()的中断版本,用于在中断服务函数中恢复一个任务。函数原型如下:

BaseType_t xTaskResumeFromISR(TaskHandle_txTaskToResume)
参数描述
XTaskToResume要恢复的任务的任务句柄。
BaseType_t返回值:pdTRUE:恢复运行的任务的任务优先级等于或者高于正在运行的任务(被中断打断的任务),这意味着在退出中断服务函数以后必须进行一次上下文切换。pdFALSE:恢复运行的任务的任务优先级低于当前正在运行的任务(被中断打断的任务),这意味着在退出中断服务函数的以后不需要进行上下文切换。

FreeRTOS创建任务的API就介绍到这里啦!!!欢迎大家收看!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留小乙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值