OpenEdv-开源电子网

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

freertos 发送消息队列失败

[复制链接]

6

主题

11

帖子

0

精华

初级会员

Rank: 2

积分
105
金钱
105
注册时间
2016-12-5
在线时间
31 小时
发表于 2020-3-5 16:03:59 | 显示全部楼层 |阅读模式
1金钱
源程序为:
           SendCommData.sourData.commSourceID = COMM_CMD_SOURCE_COMM_RECE_TASK;
           SendCommData.sourData.commROrW = CmdType_ReadCommandReturn;
           SendCommData.uDataBuf.uComFrame.sFrameData.cCmdID = CommData.uDataBuf.uComFrame.sFrameData.cCmdID;
           SendCommData.uDataBuf.uComFrame.sFrameData.cAddDataID = AppState_InAppMode;
           SendCommData.uDataBuf.uComFrame.sFrameData.unDataLen.uiValue = 0;
           xQueueSend(COMSEND_Queue,&SendCommData,portMAX_DELAY);
对发送消息,到COMSEND_Queue队列中,结果调试发现串口输出Assert failed in file queue.c, line 2884

对应的程序为 捕获.PNG
这是什么原因造成的呢谢谢
捕获.PNG

最佳答案

查看完整内容[请看2#楼]

队列集合 满了: 如果你使用了队列集合,COMSEND_Queue在集合中,则每一次send,就会将COMSEND_Queue的地址push到集合(集合也是队列)中。 只生产不消费,集合就满员了。读队列集合要及时。 队列会判断是否已满,但是prvNotifyQueueSetContainer并不会。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

82

帖子

0

精华

高级会员

Rank: 4

积分
743
金钱
743
注册时间
2018-9-1
在线时间
177 小时
发表于 2020-3-5 16:04:00 | 显示全部楼层
队列集合 满了:
如果你使用了队列集合,COMSEND_Queue在集合中,则每一次send,就会将COMSEND_Queue的地址push到集合(集合也是队列)中。
只生产不消费,集合就满员了。读队列集合要及时。
队列会判断是否已满,但是prvNotifyQueueSetContainer并不会。
uevip#126.com
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2020-3-6 01:13:19 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

474

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6077
金钱
6077
注册时间
2018-6-27
在线时间
524 小时
发表于 2020-12-10 10:21:05 | 显示全部楼层
学习学习,学习学习。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 17:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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