【速览】CubeMX2发布了,目前支持C5系列,支持MDK6
使用STM32H743IIT6,读写MCU内部Flash固定地址与固定长度的区域,出现随机性HardFault错误,请问是什么原因?
VSCODE编译stm32时一直显示正在配置
都是怎么学习TouchGFX的?
STM32H7A3VGH6Q D1、d2、E1、E2是SMPS功能对应的引脚,裸片量测D2与C1、D1对应的地没有短路现象,PCB板量测也没有短路,但芯片贴到板上D2 VLXSMPS就会与地短路。不知是啥原因。是否芯片型号与批次不对?
mmt 工具如何管理NAND和LCDinterface 设备
调试器如何通过AP0~AP3访问H757?
STM32H7的LSE起振问题
使用STM32H7A3的FMC接口驱动LCD 是否可以用DMA传输数据
CubeMX再次生成代码时中文注释出现乱码,如何解决?
微信公众号
手机版
KIMI:
根据您的描述和搜索结果,我分析这是典型的位时序和波特率切换(BRS)配置不匹配 问题。外部/内部环回模式能成功,因为它们不依赖真实的ACK应答,而正常模式需要严格的总线时序同步。
错误码分析
lasterrorcode = 5:仲裁阶段发生Bit0Error (发送'1'但回读为'0')datalasterrcode = 7:数据阶段NoChange (无新错误)这表明仲裁阶段就出现ACK失败或总线冲突 ,数据阶段根本未执行。外部环回模式绕过了ACK检查,所以能正常工作
。
核心原因与解决方案
1. 主从设备波特率配置不一致
这是最常见的原因。虽然您提到"有变速",但很可能是:
检查清单:
NominalPrescaler,NominalSyncJumpWidth,NominalTimeSeg1,NominalTimeSeg2(仲裁阶段)DataPrescaler,DataSyncJumpWidth,DataTimeSeg1,DataTimeSeg2(数据阶段,CAN FD BRS模式)2. 从设备ACK响应问题
正常模式下,发送方需要收到ACK才能认为成功。可能原因:
HAL_FDCAN_Start())验证方法:
c复制
3. 总线物理层问题
虽然60Ω终端电阻正常,但需确认:
4. GPIO和时钟配置
根据STM32H723参考手册,检查:
GPIO_AF9_FDCAN1GPIO_SPEED_FREQ_VERY_HIGHhfdcan1.Init.NominalPrescaler计算基于正确的时钟频率调试步骤建议
PSR(Protocol Status Register)寄存器,查看LEC和DLEC详细状态c复制
总结 :问题根源在于正常模式需要真实的总线握手和时序匹配 。先统一主从配置,从经典CAN模式开始验证,再逐步启用CAN FD和BRS功能。
如果确定硬件没问题,会不会是配置方面问题,比方两端的波特率配置不一致?
还有,如果接收时关闭过滤试试?
降低速率或改为经典CAN试试。
你的另外一端节点设备,是否支持CANFD?