uC/OS 的消息队列——uC/OS学习笔记(七)

1.消息队列的介绍

    使用消息队列可在任务之间传递多条消息。消息队列相当于消息邮箱集合,一个邮箱只能在任务间传递一条消息,而消息队列则可以传递多条消息。消息队列由三部分组成:事件控制块、消息队列和消息。


2.消息队列的操作

   a)创建消息队列:QSQCreate(void **start,INT16U size)。start是指针数组的地址,size是数组的长度


   b)请求消息队列:

         OSQPend(OS_EVENT *pevent,INT16U timeout,INT8U *err)。pevent是所请求的消息队列的指针;timeout是等待时限,err是错误信息。

         OSQAccept(OS_EVENT *pevent) 。pevent是所请求的消息队列的指针。


   c)向消息队列发送消息:

         先进先出的方式:OSQPost(OS_EVENT *pevent,void *msg)。pevent是所请求的消息队列的指针;msg是消息指针

         后进先出的方式:OSQPostFront(OS_EVENT *pevent,void *msg)。pevent是所请求的消息队列的指针;msg是消息指针

        以广播的方式:OSQPostOpt(OS_EVENT *pevent,void *msg,INT8U opt)。pevent是所请求的消息队列的指针;msg是消息指针,opt是广播选项。如果opt参数的值是“OS_POST_OPT_BROADCAST”,则凡是等待该消息队列的所有任务都会收到消息。


   d)清空消息队列:OSQFlush(OS_EVENT *pevent)。pevent是所请求的消息队列的指针


   e)删除消息队列:OSQDel(OS_EVENT *pevent)。pevent是所请求的消息队列的指针


    f)查询消息队列:OSQQuery(OS_EVENT *pevent,OS_Q_DATA *pdata)。pevent是所请求的消息队列的指针,pdata是存放消息状态的结构。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值