2023年初以前的款式,是不带CAN滤波器的,所以插上直接使用就可以做到标准帧与扩展帧任何帧ID都可以随意收发。
但是之后市面上销售的新款出厂前CAN过滤器默认为不接受扩展帧,这导致从硬件层扩展帧消息就发送不到单片机!所以会有程序没有任何问题,但就是收不到扩展帧的问题。
这时候不要慌,在CAN初始化时,给CAN滤波器进行初始化配置:两组屏蔽器分别设置,CAN.init_Mask(a,b,c)//a为组号,1组写1几组写几;b为是否接受扩展帧,1为接受0则为不接受;c为32位屏蔽器,格式参考0×ffff0000,F为帧id对应此位必须匹配,0为不关心。 CAN.int_Filt(a,b,c)//a为过滤器序号0-5;b为是否接受扩展帧1接受0不接受;c为mask段内为f的位必须相同的帧ID内容
比如上述例子中如果此处c设置0×182656f4则实际给单片机发送报文时,1826必须一样,后面的可以随意更改。
离线