项目场景:
CAN总线扩展帧发送的问题及意外解决
因为需要CAN总线发送格式要由标准帧换成扩展帧,标准帧的发送测试了很多次,也很正常。
问题描述:
CAN通讯把标准帧换成扩展帧,很多文档介绍,只需改变IDE就可以,当IDE=0为标准帧,IDE=1为扩展帧。实际调试过程中用: 当IDE=0为标准帧,通讯正常;当IDE=1就不是不能得到想要的扩展帧,通讯不正常,收不到ID、DLC、data,花了两天多时间反复测试,一直不能实现,找不到原因。解决方案:
因为问题得不到解决,反复在网上找别人的文档参考,见到有人的程序中用“CAN_ID_EXT”来代替“1”,即:
Can_Tx.IDE = CAN_ID_EXT;
我也是没有办法了,也试着用CAN_ID_EXT代替“1”, 其他代码没有任何改变,编译后,下载文件到芯片后,CAN扩展帧模式通讯正常。
按理说CAN_ID_EXT即是“1”,”1“即是CAN_ID_EXT,为什么不能用”1“,必须用”CAN_ID_EXT“表示,莫名其妙!
供调试CAN扩展帧的同好们参考!!