ST意法半导体
直播中

七上八下

8年用户 785经验值
私信 关注
[问答]

STM32H7 CAN总线未收到特定的消息怎么解决?

我在 STM32H745 和 STM32F042 处理器之间有一条 CAN 总线,使用标准 CAN 进行通信。传输,接收对除以下以外的任何数据包都可以正常工作:

我无法解释。数据字节以0xd2 0x01开头,STM32H7不接收。这一直工作正常,直到我将第二个字节从 0 更改为 1(这是一个版本消息,将主要版本从 0 更改为 1,因此更改)。逻辑分析仪连接到 STM32H7 的 RX 线。使用逻辑分析仪,我可以看到消息通过收发器一直传到 STM32H7。

我在两个 STM32F042 处理器之间使用相同的协议。说话没有问题。当一端切换到STM32H7时,则只有上述特定消息没有收到。其他一切似乎都很好。
如果我发送 <0xd2 0x00 etc> 或 <0xd2 0x02 etc> 或 <0xd2 0x03 etc> 接收没有问题。当第二个字符为 0x01 时,没有消息。
如果是过滤器或配置问题,我将不会收到任何消息。但我确实收到了所有消息。这仅在两个微控制器之间。
有任何想法吗 ?如果您查看该行,CRC 似乎全为 1。难道是那样吗?所有 1 都表示 CRC 错误吗?我重复一遍,这只是这条不吉利的消息。
感谢您提供任何线索。





回帖(1)

王林

2022-12-30 11:36:26
除了数据字节 5 之外没有填充,这是一个错误。从 'F042 发送相同的消息并进行比较。
我不熟悉 H7 中的 CAN 模块,但发现它不太可能是模块本身的错误,即我会从这是软件错误的前提开始。尝试使用尽可能少的软件来传输此消息,即没有 Cube、RTOS、中断等。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分