今天在米文的AD-10上测试CAN消息的收发,从网上COPY了一段代码,看起来也没啥问题,write以后也没提示错误,可是就是接收不到,百思不得其解。但是用cansend命令去发送又是正常的。
实在没办法,想到去看看cansend是怎么实现的
https://github.com/linux-can/can-utils
通过对比,发现从网上拷的代码,少了一个关键行:
memset(&frame, 0, sizeof(frame));
否则默认值会有一些出入,导致发送出去收不到,具体的逻辑还没去研究。