ARM---ucos常用系统函数参考手册(7)

发布时间:2021-06-06

好东西!

() 函数也是如此。在调用此函数时如果有任何任务在等待队列中的消息,则最高优先级的任务将得到这个消息。如果等待消息的任务优先级比发送消息的任务优先级高,那么高优先级的任务在得到消息后将立即抢占当前任务执行,也就是说,将发生一次任务切换。
函数原型:INT8U OSQPostFront(OS_EVENT *pevent, void *msg);
参数说明:pevent 是指向即将接收消息的消息队列的指针。该指针的值在建立队列时可以得到。(参考 OSQCreate() 函数)。
msg 是即将发送的消息的指针。不允许传递一个空指针。
返回值:
OSQPostFront() 函数的返回值为下述之一:
* OS_NO_ERR :消息成功地放到消息队列中。
* OS_Q_FULL :消息队列已满。
* OS_ERR_EVENT_TYPE :pevent 不是指向消息队列的指针。

4 OSQPost()
该函数用于向消息队列发送消息。消息是一个指针长度的变量,在不同的应用中消息的含义也可能不同。如果队列中已经存满消息,则此调用返回错误码。如果有任何任务在等待队列中的消息,则最高优先级的任务将得到这个消息。如果等待消息的任务优先级比发送消息的任务优先级高,那么高优先级的任务将在得到消息后立即抢占当前任务执行,也就是说,将发生一次任务切换。消息是以先入先出(FIFO)方式进入队列的,即先进入队列的消息先被传递给任务。
函数原型:INT8U OSQPost(OS_EVENT *pevent, void *msg);
参数说明:pevent 是指向即将接受消息的消息队列的指针。该指针的值在建立队列时可以得到。(参考 OSQCreate() 函数)。
msg 是即将发送给队列的消息。不允许传递一个空指针。
返回值:
OSQPost() 函数的返回值为下述之一:
* OS_NO_ERR :消息成功地放到消息队列中。
* OS_Q_FULL :消息队列已满。
* OS_ERR_EVENT_TYPE :pevent 不是指向消息队列的指针。

5 OSQFlush()
该函数用于清空消息队列。
函数原型:INT8U *OSQFlush(OS_EVENT *pevent);
参数说明:pevent 是指向消息队列的指针。该指针的值在建立队列时可以得到。(参考 OSQCreate() 函数)。
返回值:
OSQFlush() 函数的返回值为下述之一:
* OS_NO_ERR :消息队列被成功清空
* OS_ERR_EVENT_TYPE :试图清除不是消息队列的对象

6 OSQQuery()
该函数用来取得消息队列的信息。用户程序必须建立一个 OS_Q_DATA 的数据结构,该结构用来保存从消息队列的控制块得到的数据。通过调用该函数可以知道是否有任务在等
待消息、有多少个任务在等待消息、队列中有多少消息以及消息队列可以容纳的消息数。OSQQuery() 函数还可以得到即将被传递给任务的消息。
函数原型:INT8U OSQQuery(OS_EVENT *pevent, OS_Q_DATA *pdata);
参数说明:pevent 是指向

精彩图片

热门精选

大家正在看