硬汉嵌入式论坛

 找回密码
 立即注册
查看: 4280|回复: 2
收起左侧

[FreeRTOS] 队列超时阻塞

[复制链接]

4

主题

35

回帖

47

积分

新手上路

积分
47
发表于 2016-12-15 21:44:25 | 显示全部楼层 |阅读模式

xStatus_CAN= xQueueReceive( xQueue_CAN, &CAN_QUEUE_RECEIVE, portMAX_DELAY);
一个任务中等待消息队列数据,使用阻塞等待没有超时限制,这个任务会不会挂起让其他的任务运行???

硬汉能否详细说明一下:1.0立即退出 2.xBlockTime  3.portMAX_DELAY 如何应用?


阻塞的时候会任务切换吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107070
QQ
发表于 2016-12-16 09:46:23 | 显示全部楼层
调用这个函数后,此任务会释放CPU权限,让其他低优先级的任务执行。

参数为0:可以用于直接读取消息队列中的数据,不管消息队列里面有没有数据。
参数为xBlockTime:如果消息队列里面没有数据,最大会等待这么长的时间。
参数为 portMAX_DELAY:表示永久等待,直到消息队列里面有数据。
回复

使用道具 举报

4

主题

35

回帖

47

积分

新手上路

积分
47
 楼主| 发表于 2016-12-19 09:09:27 | 显示全部楼层
谢谢,了解了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-16 10:02 , Processed in 0.206625 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表