STM32-HAL CAN 仅传输空错误消息

问题描述 投票:0回答:2

我正在尝试使用 HAL 库通过 CAN 传输消息。为了测试,我重复了这个视频第一部分的代码,我有相同的bluepill,所以我做了同样的事情。我也尝试过他的项目,但将 Nucleo RE 更改为 ZE 模型。我查看了其他来源,他们都做了同样的事情,并且在他们的视频/文章中总线按照预期执行。

但是在我的所有设备上

HAL_CAN_AddTxMessage
都会产生空(或者可能是错误)消息

这些不同的线路是一块板上的 TX 和来自其他收发器的 RX。

调试显示我没有任何错误:函数返回

HAL_OK
。我在调试模式下一步一步地完成它,一切看起来都很正常。但环回和正常模式都无法传输正确的消息。

我还用 MCP2515 + TJA1040 检查了我的 LA,并且 CAN 总线工作正常

所以我很困惑,不明白我做错了什么。

c++ embedded microcontroller can-bus stm32-hal
2个回答
0
投票

问题出在 TimeQuanta 设置中。我必须更加体贴。稍后我会做出更准确的解释


0
投票

我也有同样的问题。我将预分频器设置为高,并将时间量子设置为 1 倍;我将预分频器减半并将时间量子设置为 2、3 和 2。这解决了问题,但不知道为什么。从本教程

复制这些数字
© www.soinside.com 2019 - 2024. All rights reserved.