1. ISP烧录方式概述
作为一名嵌入式开发工程师,我经常需要将编译好的程序烧录到STM32微控制器中。ISP(In-System Programming)作为一种基础的烧录方式,在实际项目中有着广泛的应用场景。不同于需要专用调试器的SWD/JTAG方式,ISP只需要通过串口就能完成程序烧录,这在很多现场调试和量产场景中特别实用。
野火STM32_HAL库版课程中介绍的ISP烧录,主要利用了STM32内置的Bootloader功能。当芯片处于特定启动模式时,片上固件会通过UART接口与上位机通信,接收并烧写用户程序。这种方式最大的优势就是硬件要求极低——仅需一个USB转TTL模块,配合简单的跳线设置就能完成烧录,特别适合没有专业调试工具时的应急使用。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件准备与接线方法
2.1 所需硬件清单
进行ISP烧录前,需要准备以下硬件设备:
- 野火STM32开发板(以F103系列为例)
- USB转TTL模块(推荐使用CH340G或CP2102芯片)
- 杜邦线若干
- 跳线帽或短路帽
注意:USB转TTL模块必须支持3.3V电平,直接使用5V电平可能损坏STM32芯片。
2.2 具体接线步骤
正确的接线是ISP烧录成功的前提。根据我的经验,90%的ISP失败案例都是由于接线错误导致的。具体接线方式如下:
- 将USB转TTL模块的TXD引脚连接到开发板的PA10(UART1_RX)
- 将USB转TTL模块的RXD引脚连接到开发板的PA9(UART1_TX)
- 连接两者共地(GND)
- 开发板的BOOT0引脚通过跳线帽接高电平(3.3V)
- BOOT1引脚保持低电平接地
这里有个实用技巧:在野火开发板上,通常会有标注"ISP"的排针,直接使用杜邦线连接这个排针和USB转TTL模块会更方便,无需单独查找PA9/PA10引脚。
3. 软件工具配置
3.1 上位机软件选择
STM32官方提供了多种ISP工具,经过多次实测,我推荐使用以下两种:
- Flash Loader Demonstrator:ST官方工具,界面简洁,稳定性好
- STM32CubeProgrammer:功能更全面,支持多种接口方式
对于初学者,建议先从Flash Loader Demons
