STM32 烧录程序后上电不工作问题集合

学习STM32 的时候遇到的小问题:

现象1

程序内容调用printf重定向函数向串口发送内容;在STM32F103C8T6最小系统板烧录程序后上电不工作,但调试模式下可正常工作;

解决的办法是:勾选Use MicroLIB

未选MicroLIB时,printf底层依赖半主机模式,会执行BKPT指令等待调试器响应。脱机时无调试器,CPU挂起导致程序卡死。勾选后MicroLIB移除该依赖,printf直接调用你重写的硬件发送函数,不再等待主机,即可独立运行。

现象2

用CubeMX生成初始代码,程序内容只包括呼吸灯工作

在STM32F103C8T6最小系统板烧录程序后上电不工作,但是按下复位按键后可重新开始工作;

解决思路

由于BOOT0悬空而导致的。BOOT0悬空时,其状态是不确定的,会导致程序无法从UserFlash中正常启动,就可能出现时好时不好的现象了

如果在上电瞬间,浮空的 BOOT1 恰好被干扰到了一个不期望的高电平,芯片就可能误入"系统存储器"或"SRAM"启动模式,从而无法执行用户程序,表现为"死机"

原因3

电源供电不稳定问题。

解决:

通过万用表测量各个模块电压,发现电压均正常值

原因4

复位信号不稳定

解决:

通过示波器 观察、隔离复位信号、加滤波电容、换复位芯片等方法进行定位。

附录-- STM32执行代码初始化卡住现象

现象

STM32执行代码初始化卡住,或者上电卡住,或者复位卡住,导致代码不执行。

解决:

1、检查自己的代码是否有中断,有中断的话,其初始化放在其他硬件初始化之后

即:中断的初始化放在进入while()循环之前,放在其他硬件初始化之后

卡住原因:中断初始化之后,产生了中断,而其他一些硬件初始化都还没有完成

相关推荐
AOI小白新手上路1 小时前
江科协51单片机 7-2 LCD1602显示时钟实验
单片机·嵌入式硬件·51单片机
思麟呀1 小时前
嵌入式入门(一)宏观生态到首次烧录
c语言·嵌入式硬件
runningshark1 小时前
SC32L14GR8PJR
单片机·嵌入式硬件
智购科技无人售货机厂家1 小时前
2026自动售货机备用电池管理系统设计:从充放电保护到健康监测的工程实践~YH
大数据·linux·单片机·嵌入式硬件·微信
智购无人售货机厂家1 小时前
2026自动售货机软硬件版本管理策略:从版本号规范到兼容性矩阵的工程实践~YH
运维·服务器·人工智能·单片机·嵌入式硬件·线性代数·矩阵
花 满 楼2 小时前
RISC-V APLIC 中断模块总结——第二篇
单片机·嵌入式硬件·mcu·risc-v
无损检测小白白2 小时前
【嵌入式面试题一】
c语言·单片机
Messy create3 小时前
【BMS-Pack检测-短路检测】
单片机·嵌入式硬件·能源
yutian06063 小时前
TI 280049 GPIO 相关笔记
嵌入式硬件·c2000
星一工作室4 小时前
【STM32模块教程】-TT马达(直流电机)
单片机·嵌入式硬件