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

STM32h7 接收各种can id情况下滤波器的配置

1、接收所有数据

/* 此处id2都为0,不进行id校验,接收所有数据*/
static void CAN_Filter_Config(void){FDCAN_FilterTypeDef sFilterConfig1;/* Configure Rx filter */sFilterConfig1.IdType = FDCAN_STANDARD_ID;sFilterConfig1.FilterIndex = 0;sFilterConfig1.FilterType = FDCAN_FILTER_MASK;sFilterConfig1.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;sFilterConfig1.FilterID1 = 0x111;sFilterConfig1.FilterID2 = 0x000; /* For acceptance, MessageID and FilterID1 must match exactly */HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig1);}

2、只接受单个id

/*此处只接收ID为“123”的can数据 */static void CAN_Filter_Config(void){FDCAN_FilterTypeDef sFilterConfig1;/* Configure Rx filter */sFilterConfig1.IdType = FDCAN_STANDARD_ID;sFilterConfig1.FilterIndex = 0;sFilterConfig1.FilterType = FDCAN_FILTER_MASK;sFilterConfig1.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;sFilterConfig1.FilterID1 = 0x123;sFilterConfig1.FilterID2 = 0x7FF; /* For acceptance, MessageID and FilterID1 must match exactly */HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig1);}

3、接收两个id

/*此处接收ID为“123”及“456”的can数据 */static void CAN_Filter_Config(void){FDCAN_FilterTypeDef sFilterConfig1;/* Configure Rx filter */sFilterConfig1.IdType = FDCAN_STANDARD_ID;sFilterConfig1.FilterIndex = 0;sFilterConfig1.FilterType = FDCAN_FILTER_DUAL;sFilterConfig1.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;sFilterConfig1.FilterID1 = 0x123;sFilterConfig1.FilterID2 = 0x456; /* For acceptance, MessageID and FilterID1 must match exactly */HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig1);}

4、接收一定范围的id

/*此处接收ID在“111”~“666”之间的can数据 */static void CAN_Filter_Config(void){FDCAN_FilterTypeDef sFilterConfig1;/* Configure Rx filter */sFilterConfig1.IdType = FDCAN_STANDARD_ID;sFilterConfig1.FilterIndex = 0;sFilterConfig1.FilterType = FDCAN_FILTER_RANGE;sFilterConfig1.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;sFilterConfig1.FilterID1 = 0x111;sFilterConfig1.FilterID2 = 0x666; /* For acceptance, MessageID and FilterID1 must match exactly */HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig1);}

5、接收特定规则的id

/*FilterType 类型配置为 FDCAN_FILTER_MASK 表示经典的位屏蔽过滤。FilterID1 = filter 表示 ID。FilterID2 = mask 表示 ID 屏蔽位,mask 每个 bit 含义:0: 表示 FilterID1 相应 bit 不关心,该位不用于比较。1: 表示 FilterID1 相应 bit 必须匹配,即接收到的 ID 位必须与 FilterID1 的相应位一致。我们这里 FilterID1 = 0x200,bit “1 0 0 0 0 0 0 0 0 0”FilterID2 = 0x300 ,bit “1 1 0 0 0 0 0 0 0 0”表示接收Id bit9必须为1,bit8必须为0,其他bit0~bit7不受限制。也就是接收0x200~0x300之间的数据*/static void CAN_Filter_Config(void){FDCAN_FilterTypeDef sFilterConfig1;/* Configure Rx filter */sFilterConfig1.IdType = FDCAN_STANDARD_ID;sFilterConfig1.FilterIndex = 0;sFilterConfig1.FilterType = FDCAN_FILTER_MASK;sFilterConfig1.FilterConfig = FDCAN_FILTER_TO_RXFIFO0;sFilterConfig1.FilterID1 = 0x200;sFilterConfig1.FilterID2 = 0x300; /* For acceptance, MessageID and FilterID1 must match exactly */HAL_FDCAN_ConfigFilter(&hfdcan1, &sFilterConfig1);}

http://www.lryc.cn/news/255130.html

相关文章:

  • 《深入理解计算机系统》学习笔记 - 第三课 - 浮点数
  • 总结:服务器批量处理http请求的大致流程
  • 算法通关村第十八关-青铜挑战回溯是怎么回事
  • 区分node,npm,nvm
  • 7-2 小霸王
  • Linux内核上游提交完整流程及示例
  • TS学习——快速入门
  • 深圳锐科达风力发电广播对讲解决方案
  • 极智芯 | 解读国产AI算力 璧仞产品矩阵
  • Echarts折线图常见问题及案例代码
  • javaTCP协议实现一对一聊天
  • 机器学习应用 | 使用 MATLAB 进行异常检测(上)
  • Java -jar参数详解
  • RocksDB 在 vivo 消息推送系统中的实践
  • 【C进阶】C程序是怎么运作的呢?-- 程序环境和预处理(上)
  • 点滴生活记录1
  • gitea仓库迁移
  • 〖大前端 - 基础入门三大核心之JS篇㊽〗- BOM特效开发
  • 【扩散模型】ControlNet从原理到实战
  • AI并行计算:CUDA和ROCm
  • 2023/12/1JAVAmysql(mysql连接,数据定义语言,数据类型,数据操作语言,数据查询语言)
  • 2023五岳杯量子计算挑战赛数学建模思路+代码+模型+论文
  • 生信数据分析高效Python代码
  • Spring Kafka常用配置详解
  • 跨域的多种方案详解
  • Java / Scala - Trie 树简介与应用实现
  • JS/jQuery 获取 HTTPRequest 请求标头?
  • Leetcode—2034.股票价格波动【中等】
  • 【Linux】diff命令使用
  • 讯飞星火认知大模型与软件测试结合,提升软件质量与效率