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

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

相关推荐
萌新小白YXY1 小时前
SAE J1587/SAE J1708 协议笔记
笔记·单片机·嵌入式硬件
恒锐丰科技韩生2 小时前
率能 SS6635E|3.0~30V 直流双向 H 桥电机驱动 SOP8 玩具电子锁机器人分享
嵌入式硬件·硬件工程
嘉子的秃头日记2 小时前
机械革命“自动修复”无法修复你的电脑
stm32·单片机·电脑
恒锐丰科技林技术员2 小时前
高集成双通道 H 桥驱动芯片 SS6850H:低压直流电机驱动优选方案
嵌入式硬件·硬件工程
森旺电子2 小时前
电子负载使用介绍
单片机·嵌入式硬件
hsjiasb12 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
LCG元13 小时前
STM32+ESP8266+MQTT 物联网气象站:从零搭建温湿度远程监测系统(附完整源码)
stm32·物联网·struts
FakeOccupational15 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
殷忆枫15 小时前
基于K210与STM32的智能垃圾分类与物联网监管系统
stm32·物联网·分类
周洲083016 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件