当前位置: 首页 > wzjs >正文

建网站的专业公司正规的代运营公司

建网站的专业公司,正规的代运营公司,wordpress .htaccess 伪静态,建筑工程自我鉴定300字之前在STM32 f407 CAN收发 基于HAL库和Cubemx配置_stm32f407can收发程序-CSDN博客这篇博文里写了一下配置CAN收发的方法,当时由于并没有使用过滤器的现实需求,所以就也没仔细研究。现在工作中确实需要用到过滤器了,有些项目中控制器和发动机E…

之前在STM32 f407 CAN收发 基于HAL库和Cubemx配置_stm32f407can收发程序-CSDN博客这篇博文里写了一下配置CAN收发的方法,当时由于并没有使用过滤器的现实需求,所以就也没仔细研究。现在工作中确实需要用到过滤器了,有些项目中控制器和发动机ECU是连接在一路总线的,而发动机ECU会产生大量的报文,这就不得不配置过滤器了。

先放上配置过滤器的代码,然后再分析原理:

CAN_FilterTypeDef  CAN2_filter1;  // Define the filter structure
// parameter of the filter
CAN2_filter1.FilterBank = 14;      /* The filter number can be set from 0 to 27depending on the setting of SlaveStartFilterBank */
CAN2_filter1.FilterMode = CAN_FILTERMODE_IDMASK;  // 
CAN2_filter1.FilterScale = CAN_FILTERSCALE_32BIT; // 
CAN2_filter1.FilterIdHigh = (0x18F60000 >> 13) & 0xFFFF;
CAN2_filter1.FilterIdLow = (0x18F60000 << 3) & 0xFFF8;
CAN2_filter1.FilterMaskIdHigh = (0xFFFF0000 >> 13) & 0xFFFF;   
CAN2_filter1.FilterMaskIdLow = (0xFFFF0000 << 3) & 0xFFF8;      
CAN2_filter1.FilterFIFOAssignment = CAN_RX_FIFO1; // FIFO1 for CAN2
CAN2_filter1.FilterActivation = ENABLE;           // 
CAN2_filter1.SlaveStartFilterBank = 13;           
// Configure CAN2 filter
while(HAL_CAN_ConfigFilter(&hcan2, &CAN2_filter1) != HAL_OK); 

首先,CAN1_filter1.SlaveStartFilterBank这个参数怎么设置?

比如上面的CAN2_filter1.SlaveStartFilterBank = 13,就是把0~12 号过滤器给 CAN1,13~27 号过滤器给 CAN2,然后CAN2_filter1.FilterBank就是在13~27中选出来的数字

小声BB:我觉得把SlaveStartFilterBank放在FilterBank之前配置其实更合理也更易于理解,因为只有SlaveStartFilterBank配置好之后才能确定FilterBank的可选范围。但目前好像所有的手册和教程都是先配置FilterBank

然后就是最重要的四个参数:

这张表很好的概括了设置方法:

要看懂这张表,首先要明白掩码的意义。放张图,不细说:

然后必须要明白,标准ID是11位,扩展ID是29位!

所以上面那张大图中上面那两块的STID实际上代表的是扩展ID的高11位!这是这张广泛流传的图很caodan的一点,非常容易让人产生困惑!

至于IDE,RTR,不用管,设置为0就行了。其他的地方都比较好理解了,下面直接举例:

例1:32位掩码模式,接收0x18F6开头的扩展ID

  CAN2_filter1.FilterMode = CAN_FILTERMODE_IDMASK;  // CAN2_filter1.FilterScale = CAN_FILTERSCALE_32BIT; // CAN2_filter1.FilterIdHigh = (0x18F60000 >> 13) & 0xFFFF;CAN2_filter1.FilterIdLow = (0x18F60000 << 3) & 0xFFF8;CAN2_filter1.FilterMaskIdHigh = (0xFFFF0000 >> 13) & 0xFFFF;   CAN2_filter1.FilterMaskIdLow = (0xFFFF0000 << 3) & 0xFFF8;     

FilterIdHigh储存ID的高16位,往右移13位就是去掉了13位的低位!FilterIdLow储存低13位,往左移3位是给“IDE,RTR,0”让位置,以及&0xFFF8,也是为了空出“IDE,RTR,0”的位置!

例2:16位列表模式,接受0x0F0,0x0F1,0x0F2这三个ID

  CAN1_filter1.FilterMode = CAN_FILTERMODE_IDLIST;  // CAN1_filter1.FilterScale = CAN_FILTERSCALE_16BIT; // CAN1_filter1.FilterIdHigh = 0x0F0 << 5;           // CAN1_filter1.FilterIdLow = 0x0F1 << 5;            // CAN1_filter1.FilterMaskIdHigh = 0x0F2 << 5;       // CAN1_filter1.FilterMaskIdLow = 0x0000; 

多组过滤器如何配置?

多写几组多调用几次HAL_CAN_ConfigFilter,记得SlaveStartFilterBank要一致,FilterBank要不同!

http://www.dtcms.com/wzjs/500327.html

相关文章:

  • 佛山营销网站建设多少钱公司网站免费自建
  • 长宁区公司网站建设专业seo外包
  • 网站推广用什么方法最好百度网站名称
  • 优秀网站欣赏怎么查询百度收录情况
  • 移动端网站如何做开放式配电子商务主要干什么
  • 苹果企业网站建设天津关键词优化网排名
  • 网站设计及开发网站内容优化关键词布局
  • 仿站网站建设网络营销效果评估
  • 微交易网站建设网文网站排名
  • 陕西网站建设设计深圳网络推广公司有哪些
  • 怎么做自动下单网站seo精准培训课程
  • 北京大兴企业网站建设咨询如何注册自己的网站
  • 网站专题设计模板外链发布平台大全
  • 网站维护推广怎么做网站维护是做什么的
  • 贵州网站建设线上推广策划方案范文
  • 网站建设首选定制开发永久免费无代码开发平台网站
  • 宜昌模板网站建设网络推广的方法有
  • 网站要做手机版怎么做查网站域名
  • 建立个大型网站需要多少投入搜索引擎入口google
  • 网站开发页面怎么进公司业务推广
  • 内网穿透做网站seo百度快照优化公司
  • 上海建网站开发公司长沙企业网站设计
  • 携程旅行网站内容的建设天津百度推广公司地址
  • 如何备份wordpress网站网站百度关键词优化
  • 实用网站建设知识点亚洲长尾关键词挖掘
  • 网站搜索引擎优化方案范文永久免费的网站服务器有哪些软件
  • 上海微网站制作阜新网站seo
  • 网站建设文化机构天津百度网络推广
  • 重庆哪家网站企业网站注册
  • 自己做网站要学什么软件淘宝指数在线查询