STM32--程序烧录

stm32最小系统板程序烧录

stlink烧录方式

接线
在这里插入图片描述
keil软件设置
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

USB 转 TTL + FlyMcu 方式烧录

接线

ttl模块的RXD接最小系统板的A9,TXD接最小系统板的A10。
供电也可使用ttl模块自带的供电,也可使用其它方式供电。

烧录软件

烧录软件使用 FlyMcu 下载网址

烧录具体操作

硬件部分

一:最小系统板BOOT跳线:BOOT0:1、BOOT1:0

软件部分

二:搜索串口
三:选择USB转TTL对应的串口
四:选择keil生成的hex文件
五:点击STMISP下的 “开始编程”
六:按最小系统板上的“reset”按钮
七:完成烧录

硬件部分

八:最小系统板BOOT跳线:BOOT0:0、BOOT1:0
九:成后需要重新上电或者按“reset”按钮。

截图参考如下
在这里插入图片描述

STM32三种启动模式对应的存储介质均是芯片内置的,它们是: 1)用户闪存 = 芯片内置的Flash。 2)系统存储器 = 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说的ISP程序。这个区 域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM区。 3)SRAM = 芯片内置的RAM区,就是内存啦。            在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序,见下表: BOOT1=x   BOOT0=0   从用户闪存启动,这是正常的工作模式。 BOOT1=0   BOOT0=1   从系统存储器启动,这种模式启动的程序功能由厂家设置。 BOOT1=1   BOOT0=1   从内置SRAM启动,这种模式可以用于调试。         在系统复位后, SYSCLK的第4个上升沿, BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。         在从待机模式退出时, BOOT引脚的值将被被重新锁存;因此,在待机模式下BOOT引脚应保持为需要的启动配置。在启动延迟之后, CPU从地址0x0000 0000获取堆栈顶的地址,并从启动存储器的0x0000 0004指示的地址开始执行代码。        因为固定的存储器映像,代码区始终从地址0x0000 0000开始(通过ICode和DCode总线访问),而数据区(SRAM)始终从地址0x2000 0000开始(通过系统总线访问)。 Cortex-M3的CPU始终从ICode总线获取复位向量,即启动仅适合于从代码区开始(典型地从Flash启动)。 STM32F10xxx微控制器实现了一个特殊的机制,系统可以不仅仅从Flash存储器或系统存储器启动,还可以从内置SRAM启动。         根据选定的启动模式,主闪存存储器、系统存储器或SRAM可以按照以下方式访问: ● 从主闪存存储器启动:主闪存存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(0x0800 0000)访问它,即闪存存储器的内容可以在两个地址区域访问, 0x0000 0000 或 0x0800 0000。 ● 从系统存储器启动:系统存储器被映射到启动空间(0x0000 0000),但仍然能够在它原有的地址(互联型产品原有地址为0x1FFF B000,其它产品原有地址为0x1FFF F000)访问它。(可用于串口下载) ● 从内置SRAM启动:只能在0x2000 0000开始的地址区访问SRAM。 注意: 当从内置SRAM启动,在应用程序的初始化代码中,必须使用NVIC的异常表和偏移寄存器,从新映射向量表之SRAM中。 ————————————————
### 使用Type-C接口对STM32进行程序烧录 对于现代嵌入式开发板而言,Type-C接口不仅支持多种物理层协议标准,还能够提供足够的电力供应给目标设备,在某些情况下也作为调试和编程接口使用。当涉及到通过Type-C接口向基于ARM Cortex-M架构的微控制器(如STM32系列)上传固件时,通常会依赖于ST公司提供的专用工具链以及相应的硬件连接方式。 #### 准备工作 为了实现这一过程,开发者需要准备如下组件: - 支持SWD/JTAG调试模式并带有USB Type-C端口的开发板; - ST-LINK/V2 或更新版本的编程器/调试器; - 安装有最新版STM32CubeProgrammer软件的工作站或个人电脑; - USB-A到USB-TypeC转接线缆或者直接利用主板上的原生Type-C接口完成连接[^1]。 #### 配置环境 安装好必要的驱动之后,启动STM32CubeProgrammer应用程序,并按照界面提示设置正确的通信参数。确保选择了合适的串行线调试(SWD)通道而不是默认选项UART/SWO,因为后者并不适用于当前场景下的操作需求。 ```bash # 打开终端窗口执行命令来验证是否正确识别到了STLink设备 $ STM32_Programmer_CLI -c port=swd freq=4000 reset=hw ``` 上述CLI指令可以用来测试计算机能否成功检测到外部连接的目标MCU模块及其所处状态。 #### 编程流程 一旦前期准备工作就绪,就可以着手编写待下载的应用程序代码了。编译完成后得到HEX/BIN文件格式的二进制映像,再借助图形化界面或是命令行脚本将其加载至内部Flash存储区中去。 ```python from stm32programmer import Programmer def flash_firmware(fw_path): programmer = Programmer() try: programmer.connect() # 建立与目标芯片之间的链接 programmer.erase() # 清除原有内容以便重新写入新数据 programmer.program(fw_path, verify=True) # 下载指定路径下firmware镜像并且校验完整性 finally: programmer.disconnect() if __name__ == "__main__": firmware_location = "path/to/firmware.hex" flash_firmware(firmware_location) ``` 这段伪Python代码展示了如何调用封装好的API函数来进行完整的刷机动作序列——建立通讯、擦除旧资料、传送新的机器码片段直至结束整个事务处理周期。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值