STM32 串口程序下载

步骤一:

要在板子上设置一下,在板子上把 P4 端子的 RXD PA9STM32 TXD),TXD PA10(STM32 RXD) 通过跳线帽连接起来,这样我们就把 CH340G MCU 的串口 1 连接 上了。
为了让下下载完后可以按复位执行程序,我们建议大家把 BOOT1 BOOT0 都设置为 0 。设置完成如图 4.2.1 所示:
这里简单说明一下一键下载电路的原理,我们知道, STM32 串口下载的标准方法是两个步骤:
1 B0 V3.3(保持 B1 GND
2 , 按一下复位按键
 
通过这两个步骤,我们就可以通过串口下载代码了,下载完成之后,如果没有设置从0X08000000 开始运行,则代码不会立即运行,此时,你还需要把 B0 接回 GND ,然后再按一 次复位,才会开始运行你刚刚下载的代码。所以整个过程,你得跳动 2 次跳线帽,还得按 2 复位,比较繁琐。而我们的一键下载电路,则利用串口的 DTR RTS 信号,分别控制 STM32 的复位和 B0 ,配合上位机软件( flymcu ,即 mcuisp 的最新版本),设置: DTR 的低电平复位, RTS 高电平进 BootLoader ,这样, B0 STM32 的复位,完全可以由下载软件自动控制,从而 实现一键下载。

步骤二:

接着我们在 USB_232 处插入 USB 线,并接上电脑,如果之前没有安装 CH340G 的驱动(如果已经安装过了驱动,则应该能在设备管理器里面看到 USB 串口,如果不能则要先卸载之前的 驱动,卸载完后重启电脑,再重新安装我们提供的驱动),则需要先安装 CH340G 的驱动,找 到光盘 软件资料 软件 文件夹下的 CH340 驱动,安装该驱动,如图 4.2.2 所示:
在驱动安装成功之后,拔掉 USB 线,然后重新插入电脑,此时电脑就会自动给其安装驱动了。在安装完成之后,可以在电脑的设备管理器里面找到 USB 串口(如果找不到,则重启下电 脑),如图 4.2.3 所示:
在图 4.2.3 中可以看到,我们的 USB 串口被识别为 COM3 ,这里需要注意的是:不同电脑可能不一样,你的可能是 COM4 COM5 等,但是 USB-SERIAL CH340 ,这个一定是一样的。 如果没找到 USB 串口,则有可能是你安装有误,或者系统不兼容。

步骤三:

在安装了 USB 串口驱动之后,我们就可以开始串口下载代码了,这里我们的串口下载软件选择的是 flymcu ,该软件是 mcuisp 的升级版本( flymcu 新增对 STM32F4 的支持),由 ALIENTEK 提供部分赞助, mcuisp 作者开发,该软件可以在 www.mcuisp.com 免费下载,本手册的光盘也 附带了这个软件,版本为 V0.188 。该软件启动界面如图 4.2.4 所示:
 

步骤四:

然后我们选择要下载的 Hex 文件,以前面我们新建的工程为例,因为我们前面在工程建立的时候,就已经设置了生成 Hex 文件,所以编译的时候已经生成了 Hex 文件,我们只需要找到 这个 Hex 文件下载即可。

步骤五:

flymcu 软件打开 OBJ 文件夹,找到对应的 hex 文件 Template.hex ,打开并进行相应设置后,如图 4.2.5 所示:

4.2.5 中圈中的设置,是我们建议的设置。编程后执行,这个选项在无一键下载功能的条件下是很有用的,当选中该选项之后,可以在下载完程序之后自动运行代码。否则,还需要按 复位键,才能开始运行刚刚下载的代码。

步骤六:

编程前重装文件,该选项也比较有用,当选中该选项之后, flymcu 会在每次编程之前,将hex 文件重新装载一遍,这对于代码调试的时候是比较有用的。 特别提醒: 不要选择使用 RamIsp 否则,可能没法正常下载。
最后,我们选择的 DTR 的低电平复位, RTS 高电平进 BootLoader ,这个选择项选中, flymcu就会通过 DTR RTS 信号来控制板载的一键下载功能电路,以实现一键下载功能。如果不选 择,则无法实现一键下载功能。这个是必要的选项(在 BOOT0 GND 的条件下)。 在装载了 hex 文件之后,我们要下载代码还需要选择串口,这里 flymcu 有智能串口搜索功 能。每次打开 flymcu 软件,软件会自动去搜索当前电脑上可用的串口,然后选中一个作为默认 的串口(一般是你最后一次关闭时所选择的串口)。也可以通过点击菜单栏的搜索串口,来实 现自动搜索当前可用串口。串口波特率则可以通过 bps 那里设置,对于 STM32F103 ,可以设置 为最高: 460800 ,而如果是 F4 ,则建议最高设置为: 76800 即可。然后,找到 CH340 虚拟的串 口,如图 4.2.6 所示:

步骤七:

从之前 USB 串口的安装可知,开发板的 USB 串口被识别为 COM3 了(如果你的电脑是被识别为其他的串口,则选择相应的串口即可),所以我们选择 COM3 ,波特率设置为 460800 设置好之后,我们就可以通过按 开始编程( P 这个按钮,一键下载代码到 STM32 上,下载成 功后如图 4.2.7 所示:
4.2.7 中,我们圈出了 flymcu 对一键下载电路的控制过程,其实就是控制 DTR RTS电平的变化,控制 BOOT0 RESET ,从而实现自动下载。另外,因为 STM32F1 的每次下载 都需要整片擦除,而 STM32F1 的整片擦除是非常慢的( STM32F1 比较快),这里的全片擦除, 等待几十秒钟 ,才可以执行完成,请大家耐心等待。但是 ST-LINK 下载不存在这个问题,所 以,我们建议, 有条件的话,最好还是用 ST-LINK 下载比较快

步骤八:

另外,下载成功后,会有“共写入 xxxxKB ,耗时 xxxx 毫秒”的提示,并且从 0X80000000处开始运行了,我们打开串口调试助手( XCOM V2.0 ,在光盘 6 ,软件资料 软件 串口调
试助手里面)选择 COM3 (得根据你的实际情况选择),设置波特率为: 115200 ,会发现从ALIENTEK MiniSTM32 开发板发回来的信息,如图 4.2.8 所示:
接收到的数据和我们期望的是一样的,证明程序没有问题。至此,说明我们下载代码成功了,并且从硬件上验证了我们代码的正确性。

猜你喜欢

转载自blog.csdn.net/m0_46383618/article/details/113745146