STM32_串口下载程序

目录标题

  • 前言
  • 1、理论知识
  • 2、串口下载具体操作
    • 2.1、硬件准备
    • 2.2、软件准备
    • 2.3、设置单片机的启动模式为系统存储器启动
    • 2.4、软件配置
    • 2.5、下载程序
  • 附:生成hex文件

前言

使用调试器下载程序又快有稳定还能使用调试功能,当然是下载调试的首选。但是拓展下串口下载程序的知识作为下载的备选方案也是很有必要的。

1、理论知识

ICP:使用SWD接口进行烧录,如J-Link烧录器和J-Flash软件配合使用。
ISP:使用引导程序(Bootload)加上外围UART/USB等接口进行烧录。
IAP:软件自身实现在线电擦除和编程的方法,不使用任何工具。程序通常分成两块,分别为引导程序和应用程序。

我们用串口下载程序就是ISP。
接下来介绍下STM32的启动模式。从STM32参考手册上,可以查阅到,STM32的启动模式,共有下列三种,可以通过BOOT0和BOOT1电平的不同组合,来选择不同的启动模式。

BOOT1BOOT0启动模式启动地址说明
X0主闪存存储器Flash0x0800 0000中断向量表定位于FLASH区,主闪存被选为启动区域,最常用,用户代码。同时复位后PC指针位于0x2000000处
01系统存储器0x1FFF F000系统存储器被选为启动区域,程序功能由厂家设置。中断向量表定位于内置Bootloader区,此时可通过串口下载程序的二进制文件到flash区
11内置SRAM0x2000 0000内置SRAM被选为启动区域,中断向量表定位于SRAM区,同时复位后PC指针位于0x2000000处

2、串口下载具体操作

2.1、硬件准备

USB-TTL模块、STM32单片机、杜邦线
按照下面的接线表格进行连接

单片机(以STM32F103C8T6为例)USB-TTL模块
5V5V
GNDGND
PA9(USART1_TX)RXD
PA10(USART1_RX)TXD

注意:

  • 1、单片机的RX、TX和USB-TTL模块的RX、TX要互斥的连接。
  • 2、串口下载只能使用串口1,对于其他型号单片机请提前查阅引脚功能表。
  • 3、单片机在有外部供电的情况下5V引脚接不接都可

2.2、软件准备

需要下载一个串口下载软件FlyMcu。

链接: FlyMcu下载地址
下载下面的压缩包即可。
在这里插入图片描述
压缩包解压后会有一个.exe文件,直接双击运行即可(免安装)。

2.3、设置单片机的启动模式为系统存储器启动

要让单片机进入系统存储器启动模式有两种方式:

  • 1、在单片机上电前将BOOT0配置为1,将BOOT1配置为0(通过拔插跳线帽使BOOT引脚与VCC或GND短接来实现),这样单片机一上电就进入系统存储器启动模式了。
  • 2、若单片机已上电,BOOT模式还没配置,可以配置跳线帽后按单片机的复位键使其进入系统存储器启动的模式。

2.4、软件配置

我们打开FlyMcu后,可以看到下面的界面,我们按着下面的步骤进行配置。
在这里插入图片描述
1、点击搜索串口,然后选中串口。
2、配置通信波特率。我们选择57600/76800均可,其它的只要别太高太低应该也是可以的。
3、选择一个Hex文件。如果有不会生成的可以看下面的"附:生成hex文件"。
4、勾选“校验”、“编程后执行”。
5、取消勾选“编程到Flash时写选项字节”。
6、选择“DRT的低电平复位,RST高电平进BootLoader”.
7、接下来就可以点击“读器件信息”了,此时若右侧窗口出现了器件信息表明连接成功了

2.5、下载程序

此时我们点击“开始编程”,右下角会有一个进度条,等待进度条结束,程序就通过串口下载到单片机了。若你的程序有现象(比如灯会闪烁等),我们就可以看到。
若此时点击复位或重新上电会发现刚才的现象消失了,不过不用担心,这是因为现在单片机的启动模式还是系统存储器,我们只需要将跳线帽插回原来的样子(BOOT0连GND,BOOT1连GND),此时点击复位,单片机会从主闪存Flash启动,此时程序就会正常运行了。

附:生成hex文件

1、我们在keil中打开要调试下载的工程。
2、点击魔法棒
3、点击"Output"
4、勾选“Create HEX File”
5、点击OK
6、编译工程
7、此时我们在工程文件夹的Objects就可以看到.hex文件了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/229141.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

BAQ压缩原理

什么是BAQ? BAQ——Block Adaptive Quantization,块自适应量化 BAQ是一种数据压缩算法。 谁提出了BAQ压缩? BAQ压缩原理是由美国NASA JPL的R. Kwok和W.T.K. Johnson在1989年提出的。第一次被用于美国NASA的“麦哲伦金星探测”任务中。 BAQ压缩的目的是什么? 上世纪后半…

Springboot Minio最新版大文件下载

上节我们说了Minio怎么大文件上传,我们是进行了分段上传,然后合并处理,感兴趣的可以去这篇文章, Springboot Minio最新版大文件上传-CSDN博客 那么今天的主题就是大文件下载,再大文件就需要分段下载,也就需…

网络爬虫第1天之数据解析库的使用

一、正则表达式 正则表达式(Regular Expression 简称regex或regexp)是一种强大的文本处理工具,它可以帮助实现快速的检索、替换或验证字符串中的特定模式。 1、match match()方法会尝试从字符串开始的位置到字符结束的位置匹配正则表达式&am…

gitee gihub上传步骤

上传 1. 到具体要上传的文件目录 2. 右击git Bash Here 初始化仓库:git init 3. 添加文件 添加所有文件 : git add . (注意这里有个点)添加具体文件: git add test.md 4. 添加到暂存区 git commit -m 暂存区 5. 将本地代…

如何将数据库导入MySQL的办法

在电脑cmd终端进行导入 首先找到MySQL中bin的位置 第一步:找到MySQL 第二步:进入MySQL 第三步:打开bin 第四步:输入cmd进入终端 第五步: 输入mysql -uroot -p 然后会弹出enter password: 输入你的密码…

C++-LD_PRELOAD

LD_PRELOAD是linux上的一个环境变量,作用是在程序启动前先加载这个动态链接库(无论程序本身是否需要)。使用场景通常是我们已经有一个release版本的动态库,此时我们想要调试动态库中的内容,又或者我们有一个v1版本的动…

Day10 Liunx高级系统设计11-数据库2

DQL:数据查询语言 查询全表 select * from 表名; 查询指定列 select 列名 1, 列名 2,… from 表名 ; 条件查询 select * from 表名 where 条件 ; 注意: 条件查询就是在查询时给出 WHERE 子句,在 WHERE 子句中可以使用如下运算符及关键 字&#…

linux笔记--VSCode利用交换机跳转服务器

目录 1--前言 2--VSCode设置 3--ssh连接 1--前言 博主学校的服务器有两个,其中一个服务器(14)可以通过挂内网VPN来进行连接,但另一个服务器(15)即使挂了VPN也不能连接,只能通过内网进行连接。…

条款4:确保对象在使用之前被初始化

文章目录 内置类型非局部静态对象总结 内置类型 C/C 中运行无初值的对象,是否确保对象初始化的规则很复杂。一般来说,如果使用C的C部分,并且初始化可能会导致运行时成本,则不能保证会发生。如果使用C的非C部分,情况有时…

深入理解前端项目中的 package.json

在前端开发中,package.json 是一个很重要的文件,它在Node.js和前端项目中扮演着重要的角色。这个文件用于存储项目的元数据以及管理项目的依赖关系。 package.json 文件是每个Node.js项目和许多前端项目的核心。它不仅定义了项目的基本属性,…

Docker笔记:配置docker网络与不通网络之间的通信及跨主机通信

配置 docker 网络 1 ) Docker0 网络 默认启动的所有容器,都会加入到这个网络中在有docker环境的 centos 中, 通过 $ ip addr 可以看到Docker0网络相关信息多个容器都在Docker0 网络中就属于同一个局域网了,就可以通信了启动三个…

ripro后台登录后转圈和图标不显示的原因及解决方法

最近,好多小伙伴使用ripro主题的小伙伴们都发现,登录后台后,进入主题设置就转圈,等待老半天后好不容易显示页面了,却发现图标不显示了,都统一显示为方框。 这是因为后台的js、css这类静态资源托管用的是js…

2312llvm,使用llvm的示例

原文 介绍 除此外,LLVM是编译器编写者的平台.因为其异常干净和小巧的IR(中间表示),使用LLVM编写编译器比其他系统容易得多. 作为证明,栈机的作者在大约四天内编写了整个编译器(语言定义,词法解析器,解析器,代码生成器等)!了解这一点很重要,因为它显示了使用LLVM时,可多快地获…

力扣刷题-二叉树-找树左下角的值

513 找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值。 假设二叉树中至少有一个节点。 示例 1: 示例 2: 思路 层序遍历 直接层序遍历,因为题目说了是最底层,最左边的值&a…

紫光FPGA DDR3 IP使用和注意事项(axi4协议)

紫光DDR3 IP使用 对于紫光ddr3 IP核的使用需要注意事情。 阅读ddr ip手册: 1、注意:对于写地址通道,axi_awvalid要一直拉高,axi_awready才会拉高。使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协…

IDEA2020关于Cannot resolve symbol ‘servlet‘报错

刚开始也配置了tomcat,但是依然报错,后来查找资料解决了 在项目下面创建一个libs文件夹,然后将tomcat / lib文件夹中的servlet-api.jar复制了过来,然后再添加到library。 具体操作步骤:

Code automatic processing

自动化处理没啥用的代码,测试下,还不错的感觉

Elasticsearch的使用总结

Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。 put/post请求:http://localhost:9200/索引库名称 {"settings":{"index":{"number_of_shards":1, # 分片数量…

Axure的交互样式和情形

Axure的交互样式和情形 交互样式 Axure是一个流行的原型设计工具,它允许您创建交互式原型,模拟应用程序或网站的功能和用户界面。在Axure中,您可以设置各种交互样式来使原型更加生动和真实。 链接触发器:通过给一个元素添加链接…

风速预测(三)EMD-LSTM-Attention模型

目录 1 风速数据EMD分解与可视化 1.1 导入数据 1.2 EMD分解 2 数据集制作与预处理 2.1 先划分数据集,按照8:2划分训练集和测试集 2.2 设置滑动窗口大小为7,制作数据集 3 基于Pytorch的EMD-LSTM-Attention模型预测 3.1 数据加载&#…