【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility

简介: 【STM32】单片机模式配置&FlyMcu串口下载固件&STLINK Utility

1 单片机模式配置

1.1 存储器映像

5ea934ab958697d243d4a6c91d013637_4ffe595730fb45268c8650f40e3d856c.png


1.2 启动配置

通过设置选择管脚,对应到各种启动模式的不同物理地址将被映像到第0块(启动存储区)。在系统复位后SYSCLK(系统)的第四个上升沿,BOOT管脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择在复位后的启动模式。即使被映像到程序存储区,仍然可以在呀原先的存储器空间内访问相关的存储器,在经过启动延迟后,CPU从位于0x0000 0000开始的启动存储区执行代码。

2630c58c51485c5f8833645a0943ca6e_a52728c2a5ec4cab9ab6b95703821b53.png

主闪存存储器:BOOT1的X代表可以悬空,但是BOOT0一定是接低电平

系统存储器:BOOT1接低电平,BOOT0接高电平

内置SRAM:BOOT1接高电平,BOOT0接高电平


1.3 启动模式选择

第一种启动方式是最常用的用户FLASH启动,正常工作就在这种模式下,STM32的FLASH可以擦出10万次,所以不用担心芯片哪天会被擦爆!一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重新启动后也直接从这启动程序。

第二种启动方式是系统存储器启动方式,从系统存储器启动,这样的模式启动的程序功能是由厂家设置的。一般来说,这样的启动方式用的比较少。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader(引导加载程序),也就是我们常说的ISP程序,这是一块ROM,出厂后无法改动。一般来说,我们选用这样的启动模式时,是为了从串口下载程序,由于在厂家提供的BootLoader中,提供了串口下载程序的固件,能够通过这个BootLoader将程序下载到系统的Flash中。

Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才干从系统存储器启动BootLoader

Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中

Step3:程序下载完毕后,又有须要将BOOT0设置为GND,手动复位,这样,STM32才干够从Flash中启动,能够看到,利用串口下载程序还是比较的麻烦,须要跳帽跳来跳去的,很的不注重用户体验。

第三种启动方式是STM32内嵌的SRAM启动。该模式用干调试。假如我仅仅改动了代码中一个小小的地方,然后就须要又一次擦除整个Flash,比较的费时,能够考虑从这个模式启动代码(也就是STM32的内存中),用于高速的程序调试,等程序调试完毕后,在将程序下载到SRAM中。


1.4 硬件展示

1.4.1 BOOT引脚配置:

c0ef19294cadbc375f77b74687e0ed51_16cf1d079be24902a87a92bfc1ed0496.png

4f3bab39138758e1e05178e8452384ac_c4004a5097704219bbf54a80fa940492.png

3197d6e839e193c9c8e45da063a3c174_2a601c25cfb94bbe8d923207f194263c.png

ba201a5851b8a83c8ebe6e05f10356e6_561e31be6a2f40e9afcedf952bc62f29.png


1.4.2 USB转TTL

CH340芯片

f0661525aed804f84e6cb1e73f36ca48_b718f29681984f779b9e74a335b9a782.png

系统存储器启动模式接线图:

4d31d702f815f76864a0832b28be2c55_1e7f887c0f694e9a966a992bd44b2f36.png

641b3ad5b7d8cef6d01d53cd960b0107_abe6e34f79564b7590419ccc1ada4cf0.png

 

  • PA9(TXD)---接RXD
  • PA10(RXD)---接TXD
  • 3.3V供电

2 FlyMcu串口下载固件

2.1软件配置方式

如果没有STLINK,就可以用这个软件通过串口下载程序

339ca249d8e816eba780eba23a5f61f4_3189e5c0cff04dc2b5887d9dd88133e9.png

这个软件类似于STC51单片机的烧录软件:STC-ISP

先生成勾选生成HEX文件,再编译

b8a05a58bdae51730f4ed983c3fac73b_8e7c70d07918485f9b334f97e58db146.png

串口号

波特率:115200

烧录

如果出现这种情况

9611922d265306b315b9fcf038a6cb2a_ea36ff401b9a4200afce51fe47a301ea.png

就说明BOOT引脚没有配置正确,跳线帽没有接正确

C8T6:

3197d6e839e193c9c8e45da063a3c174_2a601c25cfb94bbe8d923207f194263c.png

ZET6:

ba201a5851b8a83c8ebe6e05f10356e6_561e31be6a2f40e9afcedf952bc62f29.png

将BOOT0引脚的跳线帽接到右边,再按复位键,现在芯片就进入BootLoader程序。

在系统复位后SYSCLK(系统)的第四个上升沿,BOOT管脚的值将被锁存

所以一定要复位,然后再点击开始编程

ebac6084d8794daa4dca2e29d8c7cf3c_9f5e48d3e9094752b07d9f0c34329584.png

这样就成功下载进去了,但是这样下载的程序为什么不运行呢?因为STM32还在执行BootLoader的刷机程序,然后再把BOOT引脚换回来,跳线帽接回原位置,再按复位键,程序正常运行

a88279e7bec755c0142af96011ef07b3_9da49c7563a1455fbc8f6a0a129c31da.png

来回插拔跳线帽比较复杂,还有一个配置方法可以直接在BootLoader里不断的下载调试

勾选“编程后执行”

勾掉“编程到FLASH时写选项字节”

配置如下:

974586e8239ec807932b4b58e9fbb19e_db2ce5852de94b0aa5473865503d0782.png

FlyMcu软件也可以读器件信息、清除芯片、读FLASH

读FLASH读出的格式是Bin文件,但是下载却要HEX文件,嗯……

94416cbbe34db76f8fdc2b09e68604f4_c9130876751448b4aeebedca026eb84e.png

2.2 选项字节

32da5f9e38b1a4065a35bd208cf35731_75224f2f54fd4cb1b6f7eb9c61422e61.png

……


 

3 STLINK Utility

3.1 简介

接线:只接STLINK即可

跳线帽都接0

d8e7057dceb9cd47a9c03abc92f9eb0f_61a8cf35e24a4a44935a5ada991df89d.png

第三个按钮是连接,第四个是断开,第五个是擦除

如果想保存程序,就点击第二个按钮,可以选择文件格式为Bin或者HEX,比上一款软件方便一点

9af4a6aa81d9e4f335ebf215e2a836bf_be6ac7bd554947fd82f1cfc396d5e54e.png

3.2 下载程序流程

85c135a26bd723ab155ffcba4848420a_4f7e3644a95140ce9fdc2a8a4e08fe08.png

  • 点击第一个打开文件
  • 选择要下载的文件以及类型
  • 点击Start

学习视频链接:

image.png

相关文章
|
3月前
|
传感器 编解码 数据处理
毕业设计|基于STM32单片机的水位浑浊度检测设计
毕业设计|基于STM32单片机的水位浑浊度检测设计
277 0
|
3月前
|
传感器 物联网 芯片
毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测
毕业设计 基于STM32单片机无线ZIGBEE智能大棚土壤湿度光照检测
|
3月前
|
芯片
毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计
毕业设计|基于stm32单片机的app视频遥控抽水灭火小车设计
|
1月前
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
|
1月前
|
Java C语言
STM32使用printf重定向到USART(串口)并打印数据到串口助手
STM32使用printf重定向到USART(串口)并打印数据到串口助手
35 0
|
3月前
|
人工智能 安全 搜索推荐
单片机毕业设计|基于stm32智能快递箱设计
单片机毕业设计|基于stm32智能快递箱设计
|
3月前
|
网络协议 Linux
嵌入式单片机开源的串口示波器实现方法
嵌入式单片机开源的串口示波器实现方法
23 0
|
3月前
|
缓存 编译器 程序员
嵌入式开发环境Vscode开发STM32单片机程序
嵌入式开发环境Vscode开发STM32单片机程序
55 0
|
3月前
|
算法 C语言 智能硬件
stm32单片机实现电机的PID控制
stm32单片机实现电机的PID控制
84 0