打印
[开发资料]

MCU调试典型问题与解决策略

[复制链接]
202|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2025-7-30 09:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1. 程序卡死/跑飞
栈溢出:
在启动文件(如startup_stm32fxxx.s)中增大Stack_Size。
使用__get_MSP()检查栈顶是否被改写。

中断冲突:
确认中断优先级分组(NVIC_SetPriorityGrouping())。
检查未处理的中断标志(清除Pending位)。

HardFault定位:
在HardFault_Handler中读取SCB->CFSR(故障状态寄存器)、SCB->HFSR、SCB->MMFAR(内存管理地址)。
使用ARM Cortex-M的故障诊断库(如CmBacktrace)自动定位崩溃代码行。

使用特权

评论回复
沙发
forgot|  楼主 | 2025-7-30 09:36 | 只看该作者
2. 外设不工作(如UART、SPI)
时钟使能遗漏,
引脚复用错误,
查数据手册Alternate Function Mapping表。
可能遗漏重映射,
DMA冲突:检查传输完成标志未清除导致后续传输阻塞。

使用特权

评论回复
板凳
forgot|  楼主 | 2025-7-30 09:36 | 只看该作者
3. 低功耗异常
无法唤醒:确认唤醒源(RTC/WKP引脚)配置正确,退出低功耗后需重新初始化外设。
功耗偏高:
将未用引脚设为模拟输入(避免浮空)。
检查外设时钟是否在睡眠前关闭。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2055

主题

14477

帖子

59

粉丝