在互联型产品中, CAN1和CAN2分享28个过滤器组

其它STM32F103xx系列产品中有14个过滤器组

位宽设置

四种配置方式:

1个32位的屏蔽位模式

2个32位的标识符列表模式,可以过滤2个标识符id

2个16位的屏蔽位模式

4个16位的标识符列表模式,可以过滤4个标准标识符id

扩展标识符必须选择32位宽

标识符列表模式

在标识符列表模式下,屏蔽寄存器也被当作标识符寄存器用。因此,不是采用一个标识符加一

个屏蔽位的方式,而是使用2个标识符寄存器。接收报文标识符的每一位都必须跟过滤器标识符

相同

CAN_FilterInitStructure.CAN_FilterNumber = 0; //过滤器组0(FM1R)
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdList;
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
//第一个标识符id(FR1)- 标准标识符举例
CAN_FilterInitStructure.CAN_FilterIdHigh = 0x123 << 5; //根据位宽设置图
CAN_FilterInitStructure.CAN_FilterIdLow = CAN_ID_STD; //选择标准标识符
//第二个标识符id(FR2)- 扩展标识符举例
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0;
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0x321 << 3 | CAN_ID_EXT; //根据位宽设置图 | 选择扩展标识符

发送方标识符id必须是0x123或0x321

屏蔽位模式

屏蔽位模式可以过滤出一组标识符

//标准标识符举例
CAN_FilterInitStructure.CAN_FilterNumber = 0; //过滤器组0(FM1R)
CAN_FilterInitStructure.CAN_FilterMode = CAN_FilterMode_IdMask;
CAN_FilterInitStructure.CAN_FilterScale = CAN_FilterScale_32bit;
CAN_FilterInitStructure.CAN_FilterIdHigh = 0x123 << 5;
CAN_FilterInitStructure.CAN_FilterIdLow = CAN_ID_STD; //选择标准标识符
CAN_FilterInitStructure.CAN_FilterMaskIdHigh = 0x23 << 5;
CAN_FilterInitStructure.CAN_FilterMaskIdLow = 0;

CAN_FilterIdx:期望的标识符id

CAN_FilterMaskIdx:屏蔽位。关心的位

期望的标识符id:



关心的位:

只关心为1的位,必须和期望的标识符id位一致。其他位是多少不关心

优先级规则

位宽为32位的过滤器,优先级高于位宽为16位的过滤器

对于位宽相同的过滤器,标识符列表模式的优先级高于屏蔽位模式

位宽和模式都相同的过滤器,优先级由过滤器号决定,过滤器号小的优先级高

最新文章

  1. 【IOS】模仿windowsphone列表索引控件YFMetroListBox
  2. JavaScript基本数据类型(较易混淆的几个概念)
  3. arcgis中DEM如何生成等高线
  4. cvKMeans2函数用法概述
  5. ios基础篇(十二)——UINavgationController的使用(三)ToolBar
  6. ZOJ 2971 Give Me the Number;ZOJ 2311 Inglish-Number Translator (字符处理,防空行,strstr)
  7. ubuntu 14.04 root破解
  8. 261. Graph Valid Tree
  9. Logstash同步Oracle数据到ElasticSearch
  10. vlc_input buffer管理 &amp; 时钟同步(转)
  11. linux查看用户登录信息-w命令
  12. Nginx学习——http配置项解析编程
  13. shiro权限框架(五)
  14. java 内存调试 mat
  15. Java大数相加(多个大数相加)-hdu1250
  16. 基于socketserver模块并发套接字
  17. redash学习记录
  18. 12.17 Daily Scrum
  19. SQL row_number() over(partition by函数
  20. python-django rest framework框架之路由

热门文章

  1. python练习:寒冰猴子狐狸,猫狗咬架
  2. func 传参异步方法
  3. mysql 中 int 等类型如何选择
  4. Jmeter获取 json字符的另外一种写法
  5. 【414 error】nginx GET请求过长导致414错误
  6. 【tensorflow基础】TensorFlow查看GPU信息
  7. burpsuite证书生成和导入
  8. springboot-把web项目打成war包部署到外部tomcat
  9. Dubbo版本升级
  10. 重回ubutntu12.04小记(装完ubuntu做的几件事)