本帖最后由 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都接收,没有过滤。 下面是配置说明:
|