FlyMcu软件
这个软件可以通过串口下载程序,如果你没有STLINK,就可以用这个软件通过串口下载程序。
具体下载流程
1.连接硬件,保证USART1和电脑进行通信。(必须要USART1,因为芯片的串口下载只适配了USART1。)

2.打开软件,为了串口下载,我们需要配置工程,需要生成一个HEX文件。
3.点击魔术棒,在Output选项卡里,把创建HEX文件的选项点对钩。

4.在Objects目录里,找到刚才生成的HEX文件。
5.打开FlyMcu,点击搜索串口,然后选择程序文件,就是刚才生成的HEX文件。
6.在开始下载之前,我们还需要配置BOOT引脚,让STM32执行BootLoader程序。把上面的跳线帽拔下来(就是配置BOOT0引脚的跳线帽),插在右边的两个,配置BOOT0为1。然后按复位键,让程序重新运行。这样芯片就进入BootLoader程序了,进入该程序后,STM32执行的程序就是不断接收USART1的数据,刷新到主闪存。
7.点击开始编程。

8.把跳线帽换到最左边,让BOOT为0,不进入BootLoader程序,程序下载完毕。
问题1:Boot引脚的作用是什么?BootLoader又是什么?
之前我们讲过STM32的存储器映像是在ROM区的0X0800 0000 这个位置,存储的是编译后的程序代码,如果想使用串口下载程序的话,我们只需要把程序数据通过串口发给STM32,STM32接收数据,然后把它刷新到0800这个位置就行了。但是接收并转存数据本身也是个程序,如果利用程序实现自我更新?那就是BootLoader,BootLoader是ST公司写好的一段程序代码,这段程序的存储位置就是ROM区的最后 1FFF F000。
问题2:每次下载程序都需要拔插两遍跳线帽,太麻烦了,有什么解决办法?
想要切换到Bootloader程序再切回正常程序,必须要BOOT0引脚和RST复位引脚必须要有高低电平的变化。
我们可以接两根线,当电脑点击下载时,自动设置一下BOOT0和RST的电平。
看一下串口的电路图:

其中RTS和DTR是输出引脚,我们可以用这两个引脚来控制BOOT0和RST。然后在外围设计一个STM32一键下载电路。
STLINK Utility
这个软件是配合STLINK使用的一个工具,可以通过STLINK给STM32下载程序,只需要把STLINK安装好,串口可以不接。
1.点击这个按钮进行连接。

2.点击橡皮擦,擦除芯片。

3.点击编程按钮,选择文件,并下载。
