硬汉嵌入式论坛

 找回密码
 立即注册
查看: 2279|回复: 4
收起左侧

[μCOS-III] ucos 任务邮箱 提示这个 OS_ERR_Q_EMPTY? 是神马情况啊 ?

[复制链接]

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
发表于 2020-4-23 07:05:21 | 显示全部楼层 |阅读模式
ucos 任务邮箱 提示这个 OS_ERR_Q_EMPTY? 是神马情况啊 ?

第一次可以正常接收, 第二次就会出现  OS_ERR_Q_EMPTY  这个了 ???
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107027
QQ
发表于 2020-4-23 07:53:20 | 显示全部楼层
表示里面没有消息了。
回复

使用道具 举报

3

主题

337

回帖

346

积分

高级会员

积分
346
发表于 2020-4-23 08:20:41 | 显示全部楼层
你是不是没给OSQPend函数的opt参数加OS_OPT_PEND_BLOCKING选项?
回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2020-4-23 09:53:58 | 显示全部楼层
glory 发表于 2020-4-23 08:20
你是不是没给OSQPend函数的opt参数加OS_OPT_PEND_BLOCKING选项?

我使用的是
OS_ERR osMessageQueuePut(OS_TCB                *p_tcb,
                         void                  *p_void,
                         CPU_INT32U            pro,   //
                         CPU_INT32U            TickDelay         
                         )
{
  OS_ERR      err;
  pro = pro;              // 防止警告
  TickDelay = TickDelay;  // 防止警告
  
        /* 发消息,播放新歌 */
        OSTaskQPost((OS_TCB *)p_tcb,   // 任务控制块
                                (void *)p_void,   /* 数据地址 */
                                sizeof(p_void),    /* 数据字节数,也可以不是字节数,保证发送和接收统一即可 */
                                OS_OPT_POST_FIFO,
                                &err);
   return err;
}



#define  xQueue  &AppTaskMusicTCB


if(osMessageQueuePut (xQueue, (void *)pMusicMsg, 0, 0) == 0)   // =0表示成功
{


... ....
}




main {


                /* 接受数据,播放MP3文件或者WAV文件 */
                pMsg = OSTaskQPend(0,
                                                   OS_OPT_PEND_BLOCKING,
                                                   &msg_size,   /* 此参数是接收到数据个数 */
                                                   &ts,
                                                   &err);



}








回复

使用道具 举报

610

主题

3062

回帖

4912

积分

至尊会员

积分
4912
 楼主| 发表于 2020-4-23 10:46:06 | 显示全部楼层
glory 发表于 2020-4-23 08:20
你是不是没给OSQPend函数的opt参数加OS_OPT_PEND_BLOCKING选项?

貌似刚刚已经找到问题所在了,就是在创建任务时,OS_MSG_QTY 这个参数默认写成了 0(因为其他任务创建时,习惯性的写成了0,但是到了这个任务没有注意造成的,惭愧惭愧呀), 后续改成 4 或者 5 都可以,
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-14 11:52 , Processed in 0.270614 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表