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()循环之前,放在其他硬件初始化之后

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

相关推荐
尼喃6 小时前
OVP/OCP过压过流保护芯片选型表:2A、3A、5A与10A方案怎么选
嵌入式硬件
无敌贵点大王11 小时前
嵌入式软件面试经(自用)
c语言·stm32·单片机·学习·mongodb·面试·职场和发展
NYFEA11 小时前
NF532重磅上新:高集成度13.56MHz非接触式控制器
嵌入式硬件
我是海飞12 小时前
使用杰理 AC7925B 实现 Windows电脑 USB 副屏
windows·单片机·电脑·嵌入式·杰理
我是海飞13 小时前
杰理 JL703N SDK 实现 AI 自动化调试:自动进入下载模式、下载、重启与日志抓取
人工智能·单片机·自动化·音视频·杰理
Zwawa13 小时前
PID 的三个参数之外:位置式、增量式和反馈控制
c语言·单片机·嵌入式
创界工坊工作室13 小时前
29-基于单片机的万年历设计
stm32·单片机·嵌入式硬件·proteus
zhangzhangkeji13 小时前
stm32 HAL 库改写 江协科大的程序
stm32
木由里予13 小时前
NAND 这门生意
运维·服务器·网络·单片机
国科安芯14 小时前
在轨服务与空间机器人任务中跨飞行器CANFD互连的共模与单粒子问题综述
嵌入式硬件·机器人·canfd·低轨卫星·商业航天·抗辐射