OpenEdv-开源电子网

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

关于UCOS3里消息队列使用我遇到的种种问题

[复制链接]

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
发表于 2018-11-22 09:41:28 | 显示全部楼层 |阅读模式
10金钱
我使用的是STM32F407,UCOS3,完全按照原子方法移植的系统,测试无误。程序里一共起了8个任务,我在串口中断(DMA收发)里收到的数据都用消息队列传递给任务(任务里是带超时的阻塞等数据)。现在遇到了许多奇怪的问题,麻烦大家指导下:

1、在任务A里使用消息队列1接收AT指令反馈进行通信模块初始化配置,都是好的,但是配置完后我把任务A挂起,在任务B里继续接收消息队列1传来的数据,队列的长度和内容都是空,延长超时等待时间也不行;无奈,我只好改用串口1中断里收到数据就用信号量通知任务B,任务B是无限等待信号量,等到后直接去处理USART1_RX_BUF,  问题解决;
2、任务C里我觉得使用的消息队列2, 和队列1走的不是一个串口应该没有问题,但是实测发现消息队列2还是不可使用,只好还用信号量通知直接处理串口2数据的方法,不过这次发现串口2明明收到数据了,但任务C里去判断USART2_ReceiveSize却是0.  我在任务C里收到信号量通知后用printf打印任意数据,再去判断USART2_ReceiveSize就一切正常了。

我真的是无语了,搜了半天也找不到相关解释,希望在此得到大家指导。而且我也想问,是不是实际工程用UCOS的很少,或者裸跑,或者用更高端的工控机一类的了。谢谢!!!!!

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

使用道具 举报

9

主题

21

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-7-10
在线时间
17 小时
 楼主| 发表于 2018-11-23 07:13:58 | 显示全部楼层
大家没遇到的吗?或者说错误的可能性
回复

使用道具 举报

3

主题

1155

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
7462
金钱
7462
注册时间
2015-1-15
在线时间
1367 小时
发表于 2018-11-23 08:36:04 来自手机 | 显示全部楼层
哦。。。。。。
回复

使用道具 举报

25

主题

683

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1350
金钱
1350
注册时间
2012-4-25
在线时间
195 小时
发表于 2018-11-29 11:55:05 | 显示全部楼层
难用是当然了,入门简单,想要深入最少要了解原理,中断处理机制。
UCOSII 用在秒级 人机界面上还是蛮合适的,如果是用在中断频繁,大数据MS级的数据处理,只靠用UCOS 点灯的功底肯定是不够的
1-1
回复

使用道具 举报

13

主题

62

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1007
金钱
1007
注册时间
2016-8-1
在线时间
157 小时
发表于 2018-12-15 16:06:53 | 显示全部楼层
你仿真了吗 消息队列是外部的还是内部的?改为消息数量为1试试
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-26 00:49

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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