STM32 学习 —— 个人学习笔记9-3(FlyMcu 串口下载)

发布时间:2026/5/20 0:59:19

STM32 学习 —— 个人学习笔记9-3(FlyMcu 串口下载) 声明文中内容为观看 BiliBili 视频【STM32入门教程-2023版 细致讲解 中文字幕】后学习并扩展总结。本文章为个人学习使用版面观感若有不适请谅解文中知识仅代表个人观点若出现错误欢迎各位批评指正。一、程序烧录1.1 简介STM32 程序烧录是嵌入式开发流程中衔接软件编译与硬件执行的核心环节本质是通过特定硬件接口与专用工具将编译生成的二进制固件如.bin、.hex格式文件写入STM32系列微控制器非易失性Flash存储器的系统性操作其核心目的是使微控制器能够加载并执行自定义应用逻辑实现预设的硬件控制与数据处理功能。STM32 程序烧录的实现依赖芯片内置的 Bootloader 引导程序与外部烧录工具的协同作用烧录过程需严格遵循芯片启动时序与接口协议通常包含Flash 擦除、固件写入、校验验证三个核心步骤确保固件写入的完整性与可靠性同时可根据实际需求配置读写保护等安全机制防范固件被非法篡改或读取。目前主流的烧录方式可分为三大类一是 ICP在线编程方式借助ST-LINK、J-Link等调试器通过SWD或JTAG接口实现烧录与在线调试一体化其中SWD接口因引脚占用少、传输效率高成为开发调试阶段的首选方式二是 ISP在系统编程方式利用芯片出厂预置的系统Bootloader通过UART、USB等通用接口完成烧录无需专用调试器适用于量产场景与低成本开发需求三是 IAP在应用编程方式通过预先烧录的用户引导程序实现固件的远程或现场升级提升产品维护的灵活性其引导程序可通过ICP或ISP方式预先写入芯片。烧录工具方面STM32CubeProgrammer 作为 ST 官方集成工具支持各类烧录方式与固件格式可满足开发、量产等不同场景需求此外 OpenOCD 等开源工具与专用量产烧录器分别适用于脚本化烧录与高速批量生产场景共同构成了 STM32 程序烧录的完整工具链体系。STM32 程序烧录的稳定性直接决定嵌入式系统的运行可靠性其操作规范与方式选择需结合开发阶段、硬件资源、量产需求等因素综合考量是嵌入式系统开发与产品落地过程中不可或缺的关键技术环节。1.2 FlyMcu 程序烧录软件FlyMcu版本 V0.188是一款面向嵌入式系统开发的单片机在线编程工具由 mcuisp 团队开发主要用于 STM32 等系列单片机的程序烧录与固件更新。该软件通过串口USART通信实现与目标芯片的连接支持对 Intel HEX 格式固件文件的解析、校验与烧录可完成芯片 Flash 区编程、选项字节配置、器件信息读取及芯片擦除等核心操作广泛应用于嵌入式开发与教学场景。在硬件通信层面FlyMcu 严格依赖USART1接口实现 BootLoader 模式下的程序烧录不支持 USART2、USART3 等其他串口外设。其底层通信逻辑遵循 DTR 高电平复位、RTS 高电平进入 BootLoader 的时序规范通过串口 TX/RX 引脚完成固件数据的传输与校验。这一设计要求开发者在硬件布线时必须将目标单片机的 USART1 引脚如 PA9/TX、PA10/RX与编程器串口对应连接否则将无法建立有效通信链路导致烧录失败。软件功能上FlyMcu 提供了可视化操作界面支持串口端口自动搜索、波特率配置如 115200 bps、编程前文件重载、烧录后程序自动执行等选项并可在编程到 Flash 时同步写入选项字节实现芯片启动模式、看门狗等底层参数的配置。其校验机制可确保烧录数据的完整性与正确性是嵌入式系统开发中高效、可靠的串口烧录工具。软件界面如下所示可在【STM32入门教程-2023版 细致讲解 中文字幕】视频下方下载链接下载也可直接通过百度搜索下载。1.3 串口下载1、生成 HEX 文件首先通过 Keil5 MDK 程序打开需要烧录的程序配置工程使软件能够在编译的同时生成烧录所需的 HEX 文件点击魔术棒按钮打开工程选项在 Output 选项卡中勾选 Create HEX File。生成的 HEX 文件可在项目根目录下的 Objects 文件夹下查看。2、接线及配置 BOOT 引脚按下图接线方式将 DAP-Link / ST-Link 连接到 STM32 最小系统板上由于串口烧录仅支持 USART1 接口请不要尝试随意更换串口连接的接口。将 BOOT0 引脚配置跳线帽拔下并插接至右侧两针将 BOOT0 置为高电平 1随后按下复位按键位于两组跳线下方的白色按键对系统进行复位使 STM32 微控制器进入 BootLoader 启动模式并执行内置引导程序。3、抄录并运行程序将 STM32 微控制器配置为 BootLoader 启动模式后在 FlyMcu 上位机软件中执行固件下载操作通过软件菜单栏执行串口搜索功能在弹出的串口列表中选定对应通信端口本例选用 COM9空闲 USB‑SERIAL CH340实际需根据硬件连接情况选择波特率参数保持默认 115200 bps 不变在软件指定区域加载预编译生成的 HEX 格式目标文件随后启动编程操作。若软件右侧输出窗口显示 “选项字节写入成功” 等提示信息即表明 STM32 程序烧录过程完成且结果有效。程序经 BootLoader 成功烧录至主闪存后将 BOOT 引脚恢复至初始配置按下复位按键即可观察到 LED 灯点亮因本次烧录的演示代码功能为点亮 LED表明程序运行正常。1.4 BOOT 引脚介绍、BootLoader 介绍 及 串口下载原理BOOT 引脚介绍BOOT 引脚启动模式控制引脚是嵌入式微控制器MCU及各类可编程芯片中用于定义启动模式的硬件配置引脚其核心功能是在芯片上电或复位瞬间为芯片提供启动源选择的硬件逻辑信号决定芯片从何种存储介质或接口加载初始程序代码是芯片启动流程的核心硬件控制单元。BOOT 引脚通常以高低电平或多引脚电平组合作为配置信号不同电平状态对应不同的启动路径常见的启动源包括芯片内部 ROM预置引导程序、外部 Flash 存储器存储用户应用程序、SRAM临时启动调试以及 UART、USB 等通信接口用于程序下载。在硬件设计中BOOT 引脚通常需配置外部上拉或下拉电阻以确保电平稳定避免悬空导致的启动模式误判部分芯片的 BOOT 引脚在启动完成后可复用为通用 I/O 引脚提升引脚资源利用率。不同系列芯片的BOOT 引脚配置逻辑存在差异例如 STM32 系列通过 BOOT0 与 BOOT1 引脚的电平组合定义启动模式ESP32 系列则通过 GPIO0 等引脚的电平状态切换下载模式与正常启动模式具体配置需严格遵循芯片数据手册的规范要求。BOOT1BOOT0启动模式说明X0主闪存存储器主闪存存储器被选为启动区域01系统存储器系统存储器被选为启动区域11内置 SRAM内置 SRAM 被选为启动区域BootLoader 介绍BootLoader引导加载程序是嵌入式系统上电后运行的第一段软件代码介于硬件底层与操作系统内核或用户应用程序之间承担着系统初始化、启动引导及程序加载的核心职责是嵌入式系统正常运行的基础支撑程序。其本质是一段小型专用程序通常被固化在芯片内部 ROM 或特定的 Flash 分区中在芯片上电或复位后优先执行无需依赖操作系统即可独立运行。BootLoader的核心功能包括两部分一是硬件初始化即对CPU、内存RAM、存储设备、通信接口等核心硬件进行初始化配置建立内存空间映射将系统软硬件环境调整至稳定可用状态为后续程序加载奠定基础二是启动引导即根据预设逻辑或BOOT引脚的配置信号从指定存储介质如Flash、SD卡或通信接口如UART、以太网加载操作系统内核或用户应用程序完成程序代码从非易失性存储介质到RAM的搬运并最终将系统控制权移交至加载完成的程序。根据功能复杂度BootLoader 可分为单阶段引导与多阶段引导其中多阶段引导通过分阶段完成硬件初始化与程序加载具备更好的可移植性与灵活性在嵌入式领域U-Boot 是应用最广泛的通用BootLoader支持 ARM、MIPS、X86 等多种体系结构可实现程序下载、调试、系统升级等多种扩展功能。需要注意的是BootLoader 具有较强的硬件依赖性不同芯片或开发板的 BootLoader 通常需要针对性开发或适配无法直接通用。串口下载原理串口下载基于UART接口的程序下载是嵌入式开发中最常用、最便捷的程序烧录方式之一其核心原理是利用芯片内置的 UART通用异步收发器接口通过 BootLoader 程序实现主机与目标芯片之间的程序数据传输并将程序代码写入芯片的非易失性存储介质如Flash中本质是一种基于异步串行通信的在系统编程ISP或在应用编程IAP方式。串口下载的实现依赖于三个核心要素目标芯片内置的BootLoader 程序、主机端的下载工具如Flash Loader Demo、串口助手以及连接主机与目标芯片的 UART 通信链路通常由TXD、RXD、GND三根信号线组成部分场景需增加复位控制引脚。其完整流程可分为四个阶段首先通过配置BOOT引脚电平使目标芯片上电或复位后进入BootLoader模式此时芯片将UART接口初始化并处于数据接收状态等待主机发送指令其次主机端下载工具通过串口向目标芯片发送同步指令如0x7F目标芯片收到后返回应答信号如0x79完成通信链路的建立与校验确保数据传输的可靠性再次主机端将编译后的程序文件通常为hex或bin格式按照约定的通信协议拆分为固定长度的数据帧通过UART接口逐帧发送至目标芯片目标芯片的BootLoader程序接收数据帧后进行校验如奇偶校验、CRC校验校验通过后将数据写入指定的Flash存储分区最后程序数据传输完成后主机发送结束指令目标芯片 BootLoader 程序完成Flash写入操作随后根据配置自动重启切换至正常启动模式运行下载后的应用程序。串口下载的优势在于硬件连接简单、成本低廉、兼容性强无需专用调试器广泛应用于嵌入式产品的开发调试与量产烧录其传输速率受串口波特率、硬件电路抗干扰能力等因素影响实际应用中需合理配置波特率常用9600bps、115200bps以平衡传输速度与稳定性。1.5 无需频繁插拔 BOOT 引脚的串口下载方式首先将跳线帽设置为 BootLoader 启动模式两个跳线帽呈一左一右状态。然后在 FlyMcu 软件中勾选编程后执行取消勾选编程到 FLASH 时写选项字节点击开始编程。若输出窗口显示 “成功从 08000000 开始运行”且观察到程序现象正常运行此时无需恢复跳线帽。说明由于本人使用的调试设备为 CMSIS-DAP Debugger因此教学视频后半段 STLINK Utility 相关内容不进行演示。感兴趣的同学可通过本文开头提供的链接在原版视频中学习该部分内容。文中部分知识参考B 站 —— 江协科技百度百科

相关新闻