STM32H743芯片在CANFD中断接收调试过程中遇到的一个小问题及解决方案
发布时间
阅读量:
阅读量
控制器:STM32H743
功能:双路CANFD
速率:1M_5M
CANFD时钟为20M
采样点数:仲裁场85%,数据场75%。配置如下
hfdcan1.Init.NominalPrescaler = 1;
hfdcan1.Init.NominalSyncJumpWidth = 3;
hfdcan1.Init.NominalTimeSeg1 = 16;
hfdcan1.Init.NominalTimeSeg2 = 3;
hfdcan1.Init.DataPrescaler = 1;
hfdcan1.Init.DataSyncJumpWidth = 1;
hfdcan1.Init.DataTimeSeg1 = 2;
hfdcan1.Init.DataTimeSeg2 = 1;
在STM32H743调试过程中参考了正点原子的代码后 采用轮询模式的双向CANFD收发均正常工作 然而随后将系统切换至中断模式并生成相应的代码 发现无法执行发送操作 可以能够进入接收中断状态 连续发送32次后 就无法再次进入接收中断状态 后来手动增加了CANFD相关的中断处理代码 这样实现了有效的CANFD收发功能
自己添加的CANFD中断代码有
在HAL_FDCAN.NULL检查函数内
全部评论 (0)
还没有任何评论哟~
