↳ STM32F407做CANopen从站批量掉线,快被产线逼疯了
掉线后MCU没死、复位CAN就恢复,八成是bxCAN进了Bus-Off或错误被动后没自动恢复,根子在错误计数边界上。先查这几个点:一是在HAL_CAN_ErrorCallback里打印ESR寄存器,看TEC/REC和历史错误码,确认是位错误还是ACK错误累积到255进Bus-Off;二是把自动总线恢复(ABOM)打开,HAL默认不使能,很多人栽这;三是掉线瞬间用CAN分析仪抓总线,看是不是某个节点ACK丢失或毛刺触发了连续错误。另外500k下25米12节点,支线长度和每节点收发器到连接器的走线也得看,支线超0.3米就容易反射,配合毛刺正好打中采样点。先把ESR日志和ABOM落实了,大概率能定位。
2026-11-05