STM32F4的CAN过滤器使用心得

       最近在调试11个节点的CAN网络,出于安全性考虑增加过滤器功能(原子标配代码没设置相关功能),上午花费1个小时时间查阅资料与实验,最终完成,总结如下:

1、首先了解CAN协议的扩展帧格式,如下,定义的扩展标识符为29位,即下图的标识符IDE与标识符扩展IDE。

STM32F4的CAN过滤器使用心得

  查阅HAL库发送数据,格式如下,即发送的字符格式是29位标识符IDE+IDE+RTR+0,一共32位。弄清楚发送数据的顺序,我们再来看过滤器。

STM32F4的CAN过滤器使用心得

2、过滤器设置。过滤有多种设置模式,包括标识符、掩码模式,又分为16位和32位,想具体了解去翻翻手册,我使用的是32位标识符+掩码的格式。标识符为是建议接受的标识符,掩码是接收器接收到的标识符与建议标识符的需要对比的位(1对比,0不关心),配置如下

STM32F4的CAN过滤器使用心得

举例:我发送的标识符系列为0x1800F040(第5-6个字节和第1个自己可能有变化),我想要的结果是,只要其中是1的位匹配就好,根据以上结论,我设定的标识符为0xC0078200,掩码为0xC007FA00。

经测试,接受正常,不匹配数据不能接收。