大家好
我正在使用 S32K344 和 NXP AUTOSAR MCAL CANIF (FlexCAN)。
我遇到了 CAN FD 接收问题。
环境:
-MCU:S32K344(WB 电动板)-RTD:5_0_0_D2408_ASR_REL_4_7_REV_0000_2024100
2-ASR:ASR_REL_4_7_REV_0000
potato_0-1769057275222.png
potato_1-1769057284390.png
potato_2-1769057298827.png
potato_3-1769057323065.png
当前行为:
- CAN FD 传输正常。
→ 64 字节的 CAN FD 帧成功传输。
-经典 CAN 接收(8 字节)工作正常。
→ CanIf_RxIndication()按预期被调用。
- CAN FD 接收不起作用。
→ 向该节点发送 CAN FD 帧时,不调用 RxIndication。
- 作为额外的检查,我手动修改了生成的代码,设置为
DataInfo.fd_enable=FALSE -> TRUE;
DataInfo.data_length=0U -> 64U;
- 但是,CAN FD 接收仍然无法正常工作。
问题:
- FlexCAN MCAL 中的 CAN FD 接收是否需要任何额外配置?
- CAN FD 接收是否支持普通 Rx 报文缓冲区,还是需要增强型 FIFO?
- S32K344 MCAL 上的 CAN FD Rx 是否有已知的限制或约束?
任何指导或参考将不胜感激。
嗨,@土豆、
感谢您分享您的配置。
Q1. 不会,只要两个节点都配置为 CANFD。
Q2. & Q3. 不
由于您在中断模式下使用 CAN 实例,请在调用 CAN 接收之前确认中断控制器(平台)的配置是否正确(CAN0 IRQ)和初始化。
你可以使用社区示例作为参考:
致以最诚挚的问候,
Julián