在使用STM32的CAN控制器进行数据收发,当用到位屏蔽模式的时候,就要设置过滤器了,这个关系到是否能够接收到想要的数据。下面针对几种不同情况对CAN过滤器(Filter)进行设置。
CAN_FilterInitStructure.CAN_FilterMode=CAN_FilterMode_IdMask;//标示符屏蔽模式
CAN_FilterInitStructure.CAN_FilterScale=CAN_FilterScale_32bit;
1、对扩展数据帧进行过滤:(只接收扩展数据帧)
CAN_FilterInitStructure.CAN_FilterIdHigh=(EXT_ID》》13)&0xFFFF;
CAN_FilterInitStructure.CAN_FilterIdLow=((EXT_ID《《3)|(0x04))&0xFFFF;
//这里设置|0x04(0b0100)就是为了IDE=1,RTR=0,
//这里也可以写为(EXT_ID《《3)|CAN_ID_EXT|CAN_RTR_ROMOTE,效果一样,下同
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;
2、对扩展远程帧过滤:(只接收扩展远程帧)
CAN_FilterInitStructure.CAN_FilterIdHigh=(EXT_ID》》13)&0xFFFF;
CAN_FilterInitStructure.CAN_FilterIdLow=((EXT_ID《《3)|(0x06)&0xFFFF;
//这里设置|0x06(0b0110)就是为了IDE=1,RTR=1
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFFF;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0xFFFF;
3、对标准远程帧过滤:(只接收标准远程帧)
CAN_FilterInitStructure.CAN_FilterIdHigh=((STD_ID《《21)&0xFFFF0000)》》16;
CAN_FilterInitStructure.CAN_FilterIdLow=((STD_ID《《21)|(0x0))&0xFFFF;
//这里设置|0x0(0b0000)就是为了IDE=0,RTR=0
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFE0;//0xFFE0表示要关注11位的STD_ID
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0006;//0110,表示要关注IDE和RTR位,只接受标准,不接受扩展
4、对标准数据帧过滤:(只接收标准数据帧)
CAN_FilterInitStructure.CAN_FilterIdHigh=((STD_ID《《21)&0xFFFF0000)》》16;
CAN_FilterInitStructure.CAN_FilterIdLow=((STD_ID_ID《《21)|(0x06))&0xFFFF;
//这里设置|0x02(0b0010)就是为了IDE=0,RTR=1
CAN_FilterInitStructure.CAN_FilterMaskIdHigh=0xFFE0;
CAN_FilterInitStructure.CAN_FilterMaskIdLow=0x0006;//只接受标准数据帧,不接受扩展数据帧
上一篇:浅析STM32调试过程中的几个相关问题
下一篇:一种基于STM32的最小系统及串口通信的实现
推荐阅读最新更新时间:2024-11-17 16:15
设计资源 培训 开发板 精华推荐
- 【上电校赛】信号发生器
- 用于微处理器复位电路的 NCP301LSN42T1 4.2V 电压检测器的典型应用
- AD5308 八通道、8 位数模转换器的典型应用
- AD8534ARUZ 用于多媒体和汽车应用的单电源、平衡线路驱动器的典型应用
- 使用 Cypress Semiconductor 的 MB3886 的参考设计
- DC2073A-J - LTC6908-1 硅振荡器演示板
- LT3420EMS 演示板,选通电容器充电器,高压电源,输入 = 1.8V 至 16V,Vout = 300V
- JDY-23(JDY23)低功耗蓝牙开发板
- TEA1755DB1100: TEA1755 90 W / 19.5 V QR / DCM Flyback + PFC Combo Controller Demo Board
- DC1717A,使用 LTC4417 最高优先级、优先电源路径控制器的演示板
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
- 创实技术electronica 2024首秀:加速国内分销商海外拓展之路