硬汉嵌入式论坛

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

[STM32H7] Freertos 接收消息队列数据不对,是姿势不正确吗

[复制链接]

44

主题

563

回帖

700

积分

金牌会员

积分
700
发表于 2022-4-12 11:07:50 | 显示全部楼层 |阅读模式
本帖最后由 ou513 于 2022-4-12 11:09 编辑

Freertos 接收消息队列数据不对,是姿势不正确。只有一个地方发送消息,一个地方接收消息,但是接收消息数据总是不正确,是哪里应用有问题吗?指点一下,说明工程是使用STM32CubeMX配置生成,MCU为stm32h750。其他模块功能运行正常。

消息队列创建长度是16.
  SCPI_RxHandle = osMessageQueueNew (16, sizeof(uint16_t), &SCPI_Rx_attributes);

消息结构体
消息结构体.png

发送消息函数部分
发送消息变量定义:        SPI_UI_MSG_T MSG;
发送.png

接收消息函数部分
接收消息变量定义:  SPI_UI_MSG_T ptMSG;
接收.png

回复

使用道具 举报

12

主题

178

回帖

214

积分

高级会员

积分
214
发表于 2022-4-12 11:18:48 来自手机 | 显示全部楼层
sizeof 错了吧?应该是sizeof spi-ui-msg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106959
QQ
发表于 2022-4-12 12:10:12 | 显示全部楼层
主要是个问题:
1、如果是打算传递结构体变量的地址,注意地址是32bit的。默认情况下的玩法,这个消息队列是数据的复制粘贴,并不是传递地址。如果要传递地址,可以修改为地址的复制粘贴。
2、然后你的发送函数,set reg save,如果你仅仅是传递地址,你这里MSG是局部变量就不合适了,函数退出后直接被释放掉了。
回复

使用道具 举报

44

主题

563

回帖

700

积分

金牌会员

积分
700
 楼主| 发表于 2022-4-12 16:01:32 | 显示全部楼层
gallop020142 发表于 2022-4-12 11:18
sizeof 错了吧?应该是sizeof spi-ui-msg

还真是
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 17:10 , Processed in 0.259367 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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