UCOSIII消息队列
UCOSIII消息队列消息队列用于任务间通信,即传递消息。消息队列API1、创建信息队列OSQCreate2、等待消息队列OSQPend如果消息队列中没有消息,3、发布消息到消息队列OSQPostp_q: 要发布的消息队列p_void:实际发送的内容msg_size: 发送消息的大小,单位为字节BYTEopt: 选项可以为以下值:p_err: 保存错误码- ...
·
UCOSIII消息队列
消息队列用于任务间通信,即传递消息。
消息队列API
1、创建信息队列OSQCreate
2、等待消息队列OSQPend
如果消息队列中没有消息,
3、发布消息到消息队列OSQPost
p_q: 要发布的消息队列
p_void: 实际发送的内容
msg_size: 发送消息的大小,单位为字节BYTE
opt: 选项可以为以下值:
p_err: 保存错误码
- OS_OPT_POST_ALL //向所有等待消息队列的任务发布消息
- OS_OPT_POST_FIFO //发送的消息保存到消息队列的末尾
- OS_OPT_POST_LIFO //发送的消息保存在队列开头
- OS_OPT_POST_NO_SCHED //禁止任务调度
选项可以有如下组合:
1、OS_OPT_POST_FIFO + OS_OPT_POST_ALL
2、OS_OPT_POST_LIFO + OS_OPT_POST_ALL
3、OS_OPT_POST_FIFO + OS_OPT_NO_SCHED
4、OS_OPT_POST_LIFO + OS_OPT_NO_SCHED
5、OS_OPT_POST_FIFO + OS_OPT_POST_ALL + OS_OPT_NO_SCHED
6、OS_OPT_POST_LIFO + OS_OPT_POST_ALL + OS_OPT_NO_SCHED
有一个需要注意的地方,ISR中断服务程序中只能发布消息队列的消息,也就是说只能使用OSQPost()
函数。
更多推荐
已为社区贡献1条内容
所有评论(0)