视讯游戏提供最新游戏下载和手游攻略!

探索STM32程序下载新途径:基于串口的下载方法

发布时间:2024-08-30浏览:98

各位老铁们,大家好,今天由我来为大家分享探索STM32程序下载新途径:基于串口的下载方法,以及的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

前期我们下载程序都是使用STlink进行下载的,现在给大家提供一种新的程序下载方法,即使用串口进行程序的下载,下面让我们一起来看看如何操作的吧!

USB转串口驱动安装

USB 转串口的驱动芯片是 CH340,要使用串口得先在电脑 中安装 USB 转串口驱动—CH340 版本。驱动可在网上搜索下载去某宝店铺提供的。WIN7 用户请用管理员身份安装。

如果不能安装成功,请先百度查找原因自行解决。

如果 USB 转串口驱动安装成功,USB 线跟板子连接没有问题,在计算机->管理->设备 管理器->端口中可识别到串口。

如果识别不了串口,请检查 USB 线是否完好,可换一根 USB 线试试。

硬件连接

注意:STM32F1系列单片机RX/TX分别对应单片机上的PA9/PA10两个引脚,在使用单片机(第一次下载)时需要将单片机上的BOOT0\BOOT1进行接地处理。有一个跳帽,插上就行了。

程序下载

首先打开 mcuisp 软件,配置如下:

①搜索串口,设置波特率 115200(尽量不要设置的太 高)

②选择要下载的 HEX 文件

③校验、编程后执行

④DTR 低电平复位,RTS 高电 平进入 bootloader

⑤开始编程。如果出现一直连接的情况,按一下开发板的复位键即可。

具体步骤如下图:

至此,程序即下载成功了,大家快去试试吧!

ISP一键下载原理分析

ISP 简介:ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最 终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再 编程。ISP 的时候需要用到(bootloader)自举程序,自举程序存储在 STM32 器件的内部自举 ROM 存储器(系统存储器)中。其主要任务是通过一种可用的串行外设( USART、 CAN、 USB、 I2C 等)将应用程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议, 其中包含兼容的命令集和序列。

ISP 普通下载

现在我们针对 USART1 的 ISP 进行分析,通常的 ISP 的步骤如下:

1. 电脑通过 USB 转串口线连接 STM32 的 USART1,并打开电脑端的上位机;

2. 设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;

3. 复位单片机使其进入 bootloader 模式,通过上位机下载程序;

4. 下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;

5. 复位单片机即可启动用户代码,正常运行。

以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的 原理认识,一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机的 复位脚,原理图如下:

BOOT 配置

在 ISP 下载电路中,我们需要配置 BOOT 引脚,有关 BOOT 引脚不同的配置会产生不 同的启动方式,具体见表格 4-1 BOOT 配置。表格 4-1 BOOT 配置 BOOT0 BOOT1 启动方式 0 X 内部 FLASH 1 0 系统存储器

ISP 一键下载

USB 转串口估计大家都很熟悉,一般都是用到 RXD 和 TXD 这两个口,一键 ISP 电路 中我们需要用 USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 和 NRST,原 理如下:

1. 通过上位机控制 U6(CH340G)的 RTS 脚为低电平,Q1 导通,BOOT0 的电平上拉为 高电平。

2. 通过上位机控制 U6(CH340G)的 DTR 脚为高电平,由于 RTS 为低电平,Q2 导通, U8 的 2 脚为低电平,U18 为一个模拟开关,使能端由 4 脚控制,默认高电平,U18 的 1 脚和 2 脚导通,所以 NRST 为低电平系统复位。

3. 单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平,RTS 设置为高电平。Q1 和 Q2 为截至状态,BOOT0 和 NRST 还原默认电平。

4. 上位机将程序下载到单片机,下载完毕之后,程序自动运行。

5. 至此,很多人还会认为 U18、Q1、Q2 是多余的,用 U6 的 RTS 和 DTR 直接控制也 可以。正常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬 间如果 USB 转串口连接了电脑,DTR 和 RTS 的电平是变化的,如果不处理好,单 片机会一直进入 ISP 模式,或者系统会复位多次,这种情况是不允许的。

6. 于是,就有了我们全新的一键 ISP 电路。我们主要是分析上电瞬间的逻辑关系,单 片机上电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有 一个规律就是:只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2 不会导通,但由于这两个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的 时候刚好遇到 DTR 的上升沿,这个时候 Q2 导通,导致系统复位,而 BOOT0 此时 有可能也为高电平,就会进入 ISP 模式。这个是不受我们控制的,我们不想系统出 现这样的情况。因此加入了模拟开关来切断这种干扰。

7. 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面 我们分析一下延时开关电路,上电瞬间,电容 C65通过电阻 R18 来充电,由于电阻 100k 很大,电容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V 时, 大概耗时 1S,在这个 1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR 的干 扰电平不会影响到系统复位。系统正常运行。

用户评论

折木

这个教程真是帮了我大忙!在STM32设备的开发过程中,通过串口下载程序对我来说是个全新的尝试。

    有20位网友表示赞同!

满心狼藉

学习STM32的同时掌握串口下载技巧真的很赞,操作流畅,效率高。

    有8位网友表示赞同!

孤廖

按照步骤一步步进行,原来复杂的过程变得简单明了。推荐给所有 STM32初学者!

    有5位网友表示赞同!

殃樾晨

对于一个编程小白来说,能自己搞定STM32的程序下载确实是一大成就。

    有17位网友表示赞同!

小清晰的声音

教程中有大量实际案例,特别是串口和SPI接口的应用,对加深理解非常有帮助。

    有9位网友表示赞同!

风中摇曳着长发

在尝试使用这种方法之前我几乎不敢相信它能够成功,但它真的可以!

    有7位网友表示赞同!

终究会走-

对于硬件项目开发者来说,STM32和串口下载是必修课。找到了不错的入门资源。

    有7位网友表示赞同!

我没有爱人i

从理论到实践,这个教程清晰地介绍了如何将程序烧录到STM32板上,很实用。

    有8位网友表示赞同!

执妄

跟着步骤走,我成功完成了我的第一个STM32项目,这得益于这个详细的指南。

    有13位网友表示赞同!

哭花了素颜

尝试使用串口下载之前总是有点忐忑,但实际操作起来却发现过程很简单。

    有5位网友表示赞同!

自繩自縛

对于想要用Python进行设备控制的人来说,了解如何通过串口与STM32通信是很有价值的技能。

    有8位网友表示赞同!

稳妥

教程中的实验性方法大大增加了我的编程自信,现在我对STM32开发更加感兴趣了。

    有15位网友表示赞同!

陌颜

从代码的编写到使用串口下载程序,整个流程对新手非常友好且易于理解。

    有20位网友表示赞同!

盲从于你

感谢这个教程让我突破了编程中的一个大障碍。现在可以为STM32项目自豪!”

    有9位网友表示赞同!

断秋风

对于初学者而言,这个指南详细介绍了如何绕过繁琐的烧录步骤直接使用串口

    有5位网友表示赞同!

巷雨优美回忆

之前一直担心硬件调试的问题,但这套教程让我用简单的串口功能解决了,太棒了!

    有14位网友表示赞同!

你很爱吃凉皮

在开发过程中遇到不少技术难题,利用STM32和串口下载的功能帮助我轻松解决了。

    有19位网友表示赞同!

墨城烟柳

实践出真知,在实际操作中我发现理论知识和动手能力的结合非常实用。

    有6位网友表示赞同!

来自火星的我

对于STEM教师来说,这个教程也为课程设计提供了新的思路,使学生更易上手。

    有13位网友表示赞同!

入骨相思

一步一步跟着来,我成功将编写好的程序下载到STM32微控制器上,这超出了我的预期。

    有12位网友表示赞同!

眼角有泪°

学习过程充满挑战但也很有成就感。通过串口下载STM32程序让整个项目开发变得生动而实际。

    有20位网友表示赞同!

热点资讯