打印
[应用方案]

G32A1445的CAN滤波应用

[复制链接]
333|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 lengrudie 于 2024-8-23 09:23 编辑

       极海G32A1445芯片有三路CAN,都支持CANFD功能。CAN FD协议是在CAN协议的基础上扩展的最新协议,具有CAN总线的主要特性。在通信领域,CAN总线因为有很高的安全性而被广泛应用,但总线带宽和数据场长度却受到制约,使得很多数据量大的场合望而却步,由此CANFD应运而生,数据长度最大支持 64 字节,比特率最高支持 8Mb/s。
       G32A1445自带的SDK,对小白非常友好,里面有3个CAN例程:第一个是普通CAN功能的用单个邮箱收发的例程;第二个是CANFD功能的收发例程;第三个是CAN用FIFO来接收的例程。操作非常简单,想要的功能都有参考使用方法,不看手册都能知道怎么操作,简直是小白的挚爱。下图是我写的注释,不管是想做CAN单ID接收还是多ID滤波接收,操作及其简单,附测试例程。
       以下函数用于设置接收过滤ID:
STATUS_T CAN_SetRxIndividualMask(
   uint8_t index,
   CAN_MSG_ID_TYPE_T idType,
   uint8_t mbIndex,
uint32_tmask)
       第一个参数是CAN号,标识使用的是哪路CAN外设;
       第二个参数是接收帧的类型,这里可以选标准帧、扩展帧;
       第三个参数是接收报文的邮箱号,邮箱号根据手册CAN0支持最大32个邮箱,CAN1和CAN2支持最大16个邮箱;
       第四个参数是帧ID的屏蔽位,屏蔽位寄存器里为1的位,表示所对应接收ID号的位必须匹配的,也就是说,接收到的CAN报文里面的标识符(ID)里面对应的位必须跟邮箱号接收ID对应的位相同,才能被接收。如果屏蔽位全为0,则是任何ID都接收,没有过滤。
       下面是配置说明:


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

32

帖子

1

粉丝