STM32 的基本系统主要涉及下面几个部分:

  

一、电源

1)、无论是否使用模拟部分和 AD 部分,MCU 外围出去 VCC 和 GND,VDDA、VSSA、Vref(如果封装有该引脚)都必需要连接,不可悬空;

  

2)、对于每组对应的 VDD 和 GND 都应至少放置一个 104 的陶瓷电容用于滤波,并接该电容应放置尽量靠近 MCU; 3)、用万用表测试供电电压是否正确。调试时最好用数字电源供电,以便过压或过流烧坏板子。电压最好一步一步从进线端测试到芯片供电端。

  

二、复位、启动选择

1)、Boot 引脚与 JTAG 无关。其仅是用于 MCU 启动后,判断执行代码的起始地址;

2)、在电路设计上可能 Boot 引脚不会使用,但要求一定要外部连接电阻到地或电源,切不可悬空; STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:

 

1)用户闪存 = 芯片内置的 Flash。

 

2)SRAM = 芯片内置的 RAM 区,就是内存啦。

 

3)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段 Bootloader,就是通常说的 ISP 程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个 ROM 区。

  

在每个 STM32 的芯片上都有两个管脚 BOOT0 和 BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表:

  

BOOT1=x BOOT0=0 从用户闪存启动,这是正常的工作模式。

  

BOOT1=0 BOOT0=1 从系统存储器启动,这种模式启动的程序功能由厂家设置。

  

BOOT1=1 BOOT0=1 从内置 SRAM 启动,这种模式可以用于调试。

  

用 JTAG 口或 SWD 模式烧写 选择从用户闪存启动。

  

用串口 ISP 模式烧写程序时时选择从系统存储启动

 

 

三、烧写接口

如果要减小插座的数量,就用 SWD 模式的仿真,在这个模式下,如果用 JLINK 只要四根线就可以了,这四根线分别是:3.3V、GND、SWDIO、SWCLK

  

其中

STM32 的 JTMS/SWDIO 接 JTAG 口的 TMS;

STM32 的 JTCK/SWCLK 接 JTAG 口的 TCK。

 

如果要用 ULINK2,则再加多一条“NRST”,即 5 条。

  

这个接口你可自行定义,在使用时用杜邦线跳接或做块转换接口板联接仿真器与目标板即可。

  

下面是在 MDK 里设置的图片:

 

在烧写时出现了 IDCODE 如图有序列号,证明烧写接口是好的!也就是硬件调试通了。如没有也许焊接不过关,从新加固焊接芯片。

  

四、调试烧录失败的常见原因

1、目标芯片没有正确连接,不能正常工作:

解决方法:确保目标板的最小系统正确连接,芯片能正常工作:VDD、VDDA 及 VSS 、VDDS 已全部正确连接,复位电路能够可靠复位,各复位源不互相影响。

  

2、芯片内原先烧录的代码影响了新的调试操作:

芯片内原先烧录的代码出错,芯片上电运行,进入未定义状态,不能进入调试模式。芯片内原先烧录的代码启动了某些外设,或者将 SWJ 引脚配置为普通 I/O 口。

  

解决方法:选择芯片的 BOOT0/BOOT1 引脚从 RAM 启动,或先擦除芯片内代码。

  

3、芯片已被读 / 写保护:

调试工具不能读写芯片内置的 Flash。 解决方法:先使用调试工具解除芯片的读 / 写保护。