STM32
直播中

岳臻俊

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

用STM32F427ZG CAN上面报LEC填充错误的原因?

请教各位 我用STM32F427ZG CAN上面报LEC填充错误,没有进入离线 但是CAN不能接收数据了 是因为啥呀?

回帖(2)

曹雪

2024-4-3 09:19:01
位填充是检测到6位相同的值而报的错误,这些检测包括错误位清零都是硬件自动处理的。在手册上有描述。估计要看看是不是后面一直没有正确数据发送或接收从而一直报错。 建议用总线分析仪监控看一下了。
举报

岳臻俊

2024-4-3 15:40:55
LEC(Last Error Code)是CAN控制器中的寄存器,用于指示上一次CAN错误的类型。LEC填充错误表示在发送CAN消息时,超过了以前错误,导致填充字节错误。

LEC填充错误通常是由于以下原因引起的:

1. 数据长度错误:CAN消息的数据长度字段与实际发送的数据不匹配。请确保数据长度字段正确设置。

2. 填充字节错误:CAN消息的填充字节不正确,可能是数据被误解释或者接收器不正确处理填充字节。请确保填充字节的格式和长度正确。

3. 通信速率不匹配:CAN节点的通信速率设置不匹配,导致接收器无法正确接收数据。请确保发送和接收节点的通信速率设置一致。

除了以上原因外,LEC填充错误也可能是由于硬件问题或者其他软件逻辑错误导致的。建议检查硬件连接、CAN控制器配置、中断处理程序和CAN消息处理逻辑等方面,确保没有其他问题导致错误的发生。
举报

更多回帖

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