步骤一:
要在板子上设置一下,在板子上把
P4 端子的 RXD 和 PA9(STM32 的 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
所示:
接收到的数据和我们期望的是一样的,证明程序没有问题。至此,说明我们下载代码成功了,并且从硬件上验证了我们代码的正确性。