STM32最小系统板程序下载

本文详细介绍了STM32的不同启动模式,包括主闪存、BootLoader和内置SRAM,并着重讲解了无/有板载CH340芯片的开发板如何通过串口下载程序,涉及BOOT0和BOOT1引脚设置及CH340的控制策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2022/05/14

STM32的几种启动模式

在下载程序之前,我们先来看一下STM32的几种启动模式
模式图
BOOT0和BOOT1即我们STM32芯片上的两个引脚,当这两个引脚分别被置于不同的电平时,芯片启动时即可进入不同的模式。
先说一下这三个启动区域吧,主闪存存储器一般是我们最常使用的区域,当我们按下开发板上的复位键时,程序就是从这个区域运行的,我们使用JTAG或SWD下载代码时,代码也是直接下载到这个区域。系统存储器即一片ROM区域,里面的东西在芯片出厂时就被固化到了里面,我们一般是修改不了的,这片区域即BootLoader,我们可以把BootLoader看做一个小的系统,这个系统可以引导着使用串口下载程序。而内置SRAM一般在调试时使用,我们在此先不做了解。
BOOT0置于0:上一段内容也提到了,在该种模式下STM32启动时会把主闪存存储器当做启动区域,因此我们芯片正常使用时都会置于这种模式下,而JTAG或SWD也是直接将代码下载到了这一个区域,因此我们使用J-link之类的下载工具时可以直接下载,而不需要考虑其BOOT引脚电平方面的东西。
BOOT1置于0、BOOT0置于1:当我们使用串口下载程序时,必须先进入到BootLoader,BootLoader引导着程序从串口里下载,因此如果我们想用串口把我们的hex文件下载到STM32里,就需要选择这种模式。

CH340芯片

通俗来说,CH340即连接USB与串口两种不同协议的桥梁。众所周知,我们下载程序时都是使用电脑上的USB接口与单片机相连接的,而USB中使用的通信协议与串口使用的通信协议是不同的,所以我们使用到了CH340用来连接两者。在此先放一张CH340的引脚图。
ch340

无板载CH340芯片的开发板使用串口下载程序

当我们使用的是最小系统板时,其开发板上是不带CH340芯片的。这时我们使用串口下载程序时就需要手动将BOOT1引脚置于0、BOOT0引脚置于1来进入到BootLoader里引导串口下载程序。我们可以看一下该种开发板的原理图:
原理图
可以看到,在这种开发板上,芯片的BOOT0和BOOT1引脚被引入到了H1排针上,我们可以直接使用跳线帽来手动选择BOOT0和BOOT1的电平从而让芯片进入不同的启动模式。

板载CH340芯片的开发板使用串口下载程序

同样我们先来看一下含CH340的开发板的原理图
BOOT1部分:
boot1
BOOT0部分:
boot0
在这里我们可以看到,BOOT1引脚同样被引入到了排针上,可以供我们手动选择其接入的电平(不作处理时由下拉电阻接地),而BOOT0则被接入到了一个电路上,电路的另一端接入的是CH340芯片上的RTS引脚和DTS引脚。
简单来说,也就是在不含CH340时,我们下载程序需要使用跳线帽手动将两个BOOT引脚置于相应的电平。含有CH340时,我们可以通过控制CH340芯片RTS和DTS的电平来间接控制两个BOOT引脚的电平(CH340的引脚可以参考前面的CH340的引脚图)。
至于如何控制CH340芯片RTS和DTS的电平,在我们使用FlyMcu下载软件时,可以看到软件的左下角有一个下拉框可以选择RTS和DTS的不同模式,我们可以在这里来控制CH340的RTS和DTS的电平。如下图:
对应引脚

不含CH340芯片的开发板下载程序流程

  1. 我们需要准备一个USB转ttl电平的模块,如下图:(图片截自于淘宝店铺优信电子)
    下载模块
  2. 我们将Vcc、GND与最小系统板板上的Vcc、GND连接(此处需要注意最小系统板与下载器两者Vcc的电压是否相等,切勿将下载器的5V接入到最小系统板的3.3V),之后我们将下载器的TX与最小系统板的RX(PA10),下载器的RX与最小系统板的TX(PA9)连接。
  3. 安装CH340驱动,这一部分教程很多,在此不过多赘述,安装过可直接跳过。
  4. 上面提到过,想使用串口下载程序就需要进入到STM32的BootLoader启动模式,而进入到这种模式需要将BOOT0置于1,BOOT1置于0,因此我们将最小系统板的跳线帽分别接入到对应的模式,2、3步骤完成后如下图:(下图黄色部分即使用跳线帽将BOOT0和BOOT1置于BootLoader对应的电平)
    在这里插入图片描述
  5. 打开FlyMcu下载软件,点击①处搜索串口,点击②处选择正确的端口号,点击③处选择要下载的hex文件,点击④处开始编程,待⑤处显示烧录完成后即可拔掉芯片。
    在这里插入图片描述
  6. 将最小系统板上的跳线帽重新调整为BOOT0为0使系统最小板在主闪存存储器下启动,否则芯片依旧是在BootLoader下启动,烧录程序无法正常运行。到此,整个程序烧录完成。
STM32是由意法半导体(STMicroelectronics)公司推出的基于ARM Cortex-M内核的高性能、低功耗、高性价比32位微控制器系列。自其面世以来,STM32凭借其广泛的适用性和卓越的特性,已成为嵌入式系统设计领域的主流选择之一,广泛应用于工业控制、消费电子、物联网、汽车电子、医疗设备、智能家居等多个领域。 内核与架构 STM32产品线采用了不同版本的ARM Cortex-M内核,包括M0、M0+、M3、M4、M7等,分别对应不同级别的性能需求。这些内核提供单周期乘法、硬件除法、DSP指令集、浮点单元(FPU)等功能,以满足不同应用场景中的计算密集型任务需求。处理器架构遵循哈佛结构,具有独立的指令总线和数据总线,确保高效的代码执行和数据访问。 丰富的外设与接口 STM32微控制器集成了丰富的外设资源,以适应各种复杂系统设计。这些外设包括但不限于: 通信接口:如USART、UART、SPI、I2C、CAN、USB(全速/高速)、Ethernet、无线连接模块(如BLE、Wi-Fi)等,用于实现设备间的串行通信和网络连接。 定时器:多种通用定时器、高级定时器、基本定时器以及PWM输出,支持定时、计数、脉冲捕获、电机控制等多种功能。 模拟外设:高精度ADC(模数转换器)、DAC(数模转换器)、比较器、温度传感器等,用于采集和处理模拟信号。 存储器:内置Flash和SRAM,容量从几KB到几MB不等,满足不同应用的数据存储和运行空间需求。部分型号还支持外部存储器接口(如FSMC、Octo-SPI)以扩展存储能力。 安全与保护机制:如加密加速器、安全单元、内存保护单元(MPU)、看门狗定时器、时钟安全系统(CSS)等,保障系统安全稳定运行。 开发环境与生态系统 STM32拥有强大的软件支持和生态系统,简化开发流程并加速产品上市时间: 开发工具:官方提供STM32CubeMX初始化配置工具,帮助开发者快速进行项目设置、外设配置及代码生成。此外,还有STM32CubeIDE集成开发环境,集成了编译器、调试器和仿真器支持。 软件库:STM32Cube软件包包含HAL(硬件抽象层)库和LL(低层)库,前者提供跨平台、跨系列的统一API接口,后者直接面向寄存器提供高效访问。同时,还提供各类外设驱动、中间件组件(如FreeRTOS、FatFS、LwIP等)以及特定应用框架(如STM32Cube.AI for AI推理)。 社区与资源:ST官方社区、论坛、博客、技术文档、培训材料、应用笔记、用户案例等资源丰富,为开发者提供全方位的技术支持和交流平台。 产品线与封装 STM32产品线按性能、功耗、外设组合等特性划分为多个子系列,如STM32F、STM32L、STM32G、STM32H等,每个子系列下又包含多种型号,以适应不同成本、性能、尺寸和功耗要求。封装形式多样,从小型QFN、LQFP到大型BGA,满足不同应用场景的封装密度和散热需求。 综上所述,STM32微控制器以其强大的内核性能、丰富的外设集成、完善的开发支持和广泛的市场应用,为嵌入式系统设计提供了高度灵活且极具竞争力的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值