OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5384|回复: 2

关于使用UCOSII消息邮箱的两点问题

[复制链接]

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-7-5
在线时间
8 小时
发表于 2015-8-28 16:31:21 | 显示全部楼层 |阅读模式
5金钱
    UCOSII的消息邮箱深度为1,就是说消息邮箱在同一时刻只能被一个消息占用。今天想尝试下在任务中连续发送三个消息数据(每个消息为一个字节)给消息邮箱会怎么样,按道理来讲应该只能接收到第一个消息,第二、第三个消息应该会返回错误代码0x20(消息邮箱满)。可是,奇迹来了,第一、第二个消息正常接收,第三个消息返回错误代码0x14。
    代码如图中所示:建立两个任务,任务一等待消息邮箱并将消息通过串口发送,任务二查询按键,有按键按下,则连续发送三个消息,每个消息发送失败后抢先通过串口发送错误代码。结果串口助手接收到:0x14(第三个消息的错误代码),0x01(按键码值),0x01(按键码值),说明在任务二中前两个消息发送成功,第三个消息发送失败,且出错代码为0x14。
我的问题是:1.消息邮箱一次只能接收一个消息,为什么发送两个消息都能收到;
                     2.出错代码应该是0x20(邮箱满),为什么实际返回0x14(OS_ERR_PEND_ABORT)。

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2015-8-28 17:15:19 | 显示全部楼层
先把左工的沙发占了。
小小蜗牛
回复

使用道具 举报

3

主题

8

帖子

0

精华

初级会员

Rank: 2

积分
58
金钱
58
注册时间
2013-7-5
在线时间
8 小时
 楼主| 发表于 2015-8-29 10:32:14 | 显示全部楼层
别沉贴,大家讨论下
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-1 16:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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