代码调试
嵌入式四大经典故障的 AI 诊断演示:现象 → 根因 → 证据链 → 修复。也可以粘贴你自己的报错日志。二期接入真实调试会话(OpenOCD + 串口)。
粘贴报错日志或描述现象
故障现象 · 串口 / 异常现场
[serial] 115200-8-N-1 connected
�5H�k��j��...
�◇�◇�◇
AI 诊断
根因:波特率不匹配:固件按 HSI 16MHz 计算分频,而板卡实际使用 HSE 24MHz 晶振,实际波特率偏差 50%。
证据链
- • 乱码呈稳定模式而非随机(时钟成比例偏差的典型特征)
- • system_clock_config() 中 CLK_SRC 选择为 HSI
- • 板卡 BOM 显示 X1 = 24MHz
修复步骤
- 1. 确认板卡晶振频率(原理图 X1)
- 2. 把时钟源切到 HSE 并更新 SystemCoreClock
- 3. usart_init 重新计算 BRR 分频
修复前
clk_select(CLK_SRC_HSI); /* 16MHz */ usart_init(USART0, 115200);
修复后
clk_select(CLK_SRC_HSE); /* 24MHz 外部晶振 */ system_core_clock_update(); usart_init(USART0, 115200); /* BRR 依据新时钟重算 */