【嵌入式】STM32开发板烧写后程序无法正常运行

STM32在使用过程中经常会出现蜜汁卡死的情况,所以我准备专门写篇文章来记录下曾经遇到过的情况,小伙伴们看到可以少走些弯路。(持续更新)

情景一(已解决)

外设配置不完整,例如GPIO需要Speed、Mode、Pin这三个参数,如果少其中之一,编译时不会报错,但烧录后无法正常运行,打开调试后则一直循环在某一段汇编指令下。

情景二(已解决)

硬件平台是stm32F103RCT6开发板,通过下载器供3.3V电。烧写程序后,开发板无任何反应,代码无问题。打开调试模式后,反汇编界面显示在这段无限循环

//寄存器的值一直仅有R1会变。
0x1FFFF3B2 F8D01808  LDR      r1,[r0,#0x808]
0x1FFFF3B6 0549      LSLS     r1,r1,#21
0x1FFFF3B8 D4FB      BMI      0x1FFFF3B2

//反汇编窗口一直是这三条语句循环

中间走了许多弯路,
1、怀疑keil5没装兼容包打开keil4工程的原因,装了legacy pack未解决。
2、怀疑jlink有问题,于是又买了个stlink,插上一试问题未解决。
3、看到有人说是因为一键下载电路没有上电,直接连接swd导致的,所以将开发板电源开关打开(之前是直接3.3V供电,开发板可以正常使用,开关是5V的开关),然后再下载问题就解决了。

你可能感兴趣的:(【嵌入式】STM32开发板烧写后程序无法正常运行)