37《STM32 HAL库 CAN总线通信从入门到精通》
STM32 HAL库 CAN总线通信从入门到精通 001:CAN总线基础概念与物理层原理写在前面:一次深夜的调试噩梦去年做一款车载BMS项目,凌晨两点,示波器夹在CAN_H和CAN_L之间,波形像一团乱麻。主控是STM32F407,CAN收发器用的TJA1050,波特率500kbps。代码逻辑检查了三遍,HAL_CAN_Start()返回HAL_OK,但总线就是没反应——发送邮箱一直pending,接收中断死活不进。最后发现是终端电阻没焊,120Ω的贴片电阻在BOM里被漏掉了。这个教训让我意识到:CAN总线调试,物理层的问题往往比协议层更隐蔽、更致命。一、CAN总线到底长什么样?——别被“差分”两个字骗了CAN总线物理层就是两根线:CAN_H(高电平线)和CAN_L(低电平线)。但“差分信号”这四个字,新手容易理解成“一根发正信号,一根发反信号”。实际工作方式更微妙:显性电平(Dominant):CAN_H比CAN_L高1.5V~2.5V(具体看收发器型号),逻辑上代表“0”。这是总线上的“强权”——只要有一个节点拉显性,整条总线就是显性。隐性电平(Recessive):CAN_H和CAN_L电压差接近0V(约2.5V对2.5V),逻辑上代表“1”。这是“无争状态”,所有节点都释放总线时才会出现。这里踩过坑:用万用表测CAN_H对地电压,发现是2.5V,以为正常。但示
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2599654.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!