【UCOS-ii】OSQPend等待消息队列中的消息

/**************************************************************************
								在队列中等待消息
*参数:	pevent		是一个指向与期望队列关联的事件控制块的指针  
*		timeout		是一个可选的超时时间(以时钟周期为单位)。 如果非零,任务将等待消息到达队列,等待时间为该参数指定的时间。 但是,如果指定0,则任务将在指定的队列上永远等待,直到消息到达。  
*		perr		指向将存储错误消息的位置指针,可能的错误消息包括:
*					OS_ERR_NONE			通话成功,队列将收到一条消息
*					OS_ERR_TIMEOUT		没有在指定的超时时间内收到消息
*					OS_ERR_PEND_ABORT	等待被终止
*					OS_ERR_EVENT_TYPE	你没有向队列传递指针
*					OS_ERR_PEVENT_NULL	参数pevent是个空指针
*					OS_ERR_PEND_ISR		如果从ISR调用这个函数,结果将导致暂停
*					OS_ERR_PEND_LOCKED	如果使用调度器调用此函数,则锁定  
*返回值:	!= (void *)0	是一个指向接收到的消息的指针
			== (void *)0	接收到一个NULL指针
							没有收到消息
							pevent参数是个空指针
							没有传递给指向队列的指针

**************************************************************************/
void  *OSQPend (OS_EVENT  *pevent, INT32U     timeout,	INT8U     *perr)
{

}

                            
如果消息队列中没有消息,OSQPend函数检查它的调用者是否是中断服务子程序,消息队列中没有消息就不能在中断服务子程序中调用OSQPend,因为中断服务子程序是不能等待的。
如果消息队列中有消息,则可以从中断服务子程序中调用OSQPend函数

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值