所使用的主控芯片是STM32H743IIT6,所使用的CAN芯片是 TJA1043。
最近在配置完成 CANFD的程序。跑起来发现能接收到ID,但不能接收到数据长度以及数据。
最后发现 也许是 HAL更新了 ,库函数 有些不一样
安富莱 H7 BSP 双CANFD例程中的 hal库 FDCAN_CopyMessageToRAM如下
最近用STM32CUBEMX(6.10.0)配置的CANFD中 hal库函数如下
可以看到最新的hal库底层已经对数据长度做了 <<16 ,我们在发送函数中上就不用 <<16。
其实,应该使用HAL库自带的 参数 这样就可以避免这个问题了,而不是自己 手打一个数字。
下图是 我用CUBEMX配置的CANFD例程中的 数据长度 宏定义
话说 TJA1043 数据手册上标明了 最大5Mbps,但实际测试只有3Mbps多一些,也许是电路问题,传输速度与数据手册差的还是有点大。