STM32
直播中

李猛

7年用户 1472经验值
私信 关注
[问答]

用stm32做can通信遇到位显性错误的原因?

我刚刚开始用STM32 做can通信,遇到一个问题。我用的HAL 库 “SET_BIT(hcan->Instance->sTxMailBox[transmitmailbox].tiR, CAN_TI0R_TXRQ);” 这条语句执行完后 寄存器 有位错误提示 LEC 设置成5 :位显性错误 bit dominant error. 以为是硬件错误,但是即使设置成 静默回环模式 问题依旧。

回帖(2)

赵媛

2024-4-7 10:31:41
如果回环模式下还有问题的话,那就是配置的问题了
举报

笔画张

2024-4-7 15:07:15
位显性错误(bit dominant error)通常表示在CAN通信过程中,出现了错误的CAN帧。这个错误通常是由于收到的CAN帧中的某个位被错误的设为了0,而正确的值应该是1,导致了冲突。

可以从以下几个方面来排查和解决问题:
1. 确认CAN通信的配置参数是否正确,包括波特率、时钟设置等。
2. 检查CAN线路是否正确连接,包括电缆接线和终端电阻。
3. 检查CAN节点的硬件配置是否正确,包括CAN控制器的初始化设置等。
4. 使用CAN分析仪或示波器来检查CAN总线上的通信,确保其他节点正常发送和接收数据。
5. 检查CAN帧的数据是否正确,尤其是标识符、数据域和校验字段。

上述方法中,最常见的问题是配置参数和硬件连接错误。请仔细检查和确认这些设置是否正确,并根据具体情况进行调整和修改。如果问题仍然存在,建议参考STM32官方文档和相关资料,查找更多关于CAN通信的问题排查和解决方法。
举报

更多回帖

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