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

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

相关推荐
智者知已应修善业1 小时前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
辰哥单片机设计2 小时前
STM32智能药盒丨2027单片机新项目
stm32·单片机·嵌入式硬件
LCG米12 小时前
STM32硬件CRC外设实测:多项式固定陷阱、CRC-32校验不匹配根因与软件查表法耗时对比落地
stm32·单片机·嵌入式硬件
La Pulga16 小时前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
女神下凡19 小时前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范
Zw-awa20 小时前
从 CH340 到 HC-05 和 HC-06:让小车脱离电脑
stm32
硅基手札21 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
何粥学1 天前
Vivado 2024.2 开发记录(AC820 Zynq-7020)——软件使用,点亮led灯
单片机·嵌入式硬件·zynq
Sakura_j_h_1 天前
51 单片机驱动四位数码管:动态扫描、限流电阻与消影的取舍
单片机·嵌入式硬件·51单片机·嵌入式·数码管·动态扫描·限流电阻