UCOS消息队列的使用

2020-04-17 06:55

ucos消息队列的使用

一、消息队列的使用

1、需在以下文件中配置如下内容 OS_CFG.H

OS_MAX_QS N 你需要的值 根据需要自己配置

#define OS_Q_EN 1 /* Enable (1) or Disable (0) code generation for QUEUES */

#define OS_Q_ACCEPT_EN 1 /* Include code for OSQAccept() */

#define OS_Q_DEL_EN 1 /* Include code for OSQDel() */

#define OS_Q_FLUSH_EN 1 /* Include code for OSQFlush() */

#define OS_Q_POST_EN 1 /* Include code for OSQPost() */

#define OS_Q_POST_FRONT_EN 1 /* Include code for OSQPostFront() */

#define OS_Q_POST_OPT_EN 1 /* Include code for OSQPostOpt() */

#define OS_Q_QUERY_EN 1 /* Include code for OSQQuery() */

2、建立一个指向消息数组的指针和数组的大小,该指针数组必须申明为void类型, 如下:

void *MyArrayOfMsg[SIZE];

3、声明一个OS_EVENT类型的指针指向生成的队列,如下: OS_EVENT *QSem;

4、调用OSQcreate()函数创建消息队列,如下:

QSem = OSQcreate(&MyArrayOfMsg[0],SIZE);

5、等待消息队列中的消息,OSQPend()。void *OSQPend (OS_EVENT *pevent, INT16U timeout, INT8U *err): 必须保证消息队列已经被建立。

timeout定义的是等待超时时间,如果为0则表示无期限的等待 err表示的是在等待消息队列出错时的返回类型,有以下几种: OS_ERR_PEVENT_NULL //消息队列不存在 OS_ERR_EVENT_TYPE

OS_TIMEOUT //消息队列等待超时

OS_NO_ERR //消息队列接收到消息

获得消息队列示例 type *GETQ; INT8U err;

GETQ = (type *)OSQPend(QSem, time, &err);


UCOS消息队列的使用.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:英语四六级历年作文题目汇总

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: