在使用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串口首字符出现乱码的问题
下一篇:STM32F407 单通道ADC采样,DMA传输
推荐阅读最新更新时间:2024-03-16 15:42
设计资源 培训 开发板 精华推荐
- 首都医科大学王长明:针对癫痫的数字疗法已进入使用阶段
- 非常见问题解答第223期:如何在没有软启动方程的情况下测量和确定软启动时序?
- 兆易创新GD25/55全系列车规级SPI NOR Flash荣获ISO 26262 ASIL D功能安全认证证书
- 新型IsoVu™ 隔离电流探头:为电流测量带来全新维度
- 英飞凌推出简化电机控制开发的ModusToolbox™电机套件
- 意法半导体IO-Link执行器电路板为工业监控和设备厂商带来一站式参考设计
- Melexis采用无磁芯技术缩小电流感测装置尺寸
- 千丘智能侍淳博:用数字疗法,点亮“孤独症”儿童的光
- 数药智能冯尚:ADHD数字疗法正为儿童“多动症”提供更有效便捷服务
- Vicor高性能电源模块助力低空航空电子设备和 EVTOL的发展
- 喜提安卓12,谷歌 Android 12(含 AOSP)发布:小米等将更新
- 一加9 RT现身跑分网站:处理器升级成骁龙888
- 三星 Exynos 预热光线追踪功能,和 AMD 合作的首款芯片或落地
- realme UI 3.0宣布是基于Android 12打造!
- 基于51单片机的智能语音电子秤设计
- 搭骁龙898+百瓦快充!Redmi K50系列曝光:共三款
- 三星Galaxy S22机模:屏幕四边等宽,后摄模组更长
- 苹果iPhone 13系列定价策略暗藏玄机
- 郭明錤:Mini-LED将成2021–2023年高端苹果iPad的卖点之一
- 蜂巢能源常州总部新建40GWh新能源电池项目 总产能规划已超200GWh