关于STM32单片机采用CH340串口烧写程序的细节

2023-06-05 03:00   502   0  

针对STM32系列单片机,大家一般采用STLink和Jlink来下载程序,这里我们试一下CH340 USB转串口芯片的下载方法,主要是将Boot电平设置好。
采用:STM32F103C6T6芯片microUSB 接口连上电脑,com3端口
环境:Win10,提前安装好CH340/341系列的驱动
针对BOOT0和BOOT1的不同接线方式(高电平,低电平,不接线),开发板的下载情况分析如下图:(“x”代表不接线,“√”代表能成功下载)


84c6a846-ac52-11ed-bcd2-b8ca3a6cb5c4.webp


Boot接线方式84c6a847-ac52-11ed-bcd2-b8ca3a6cb5c4.webp


首先对BOOT0与BOOT1如何连接及连接方式介绍一下。
STM32 单片机的BOOT0 和BOOT1 应用原理
STM32 三种启动模式对应的存储介质均是芯片内置的,它们是:
1)主闪存存储器= 芯片内置的Flash。这也是正常工作模式
2)SRAM = 芯片内置的RAM 区,就是内存啦。
3)系统存储器= 芯片内部一块特定的区域,芯片出厂时在这个区域预置了一段Bootloader,就是通常说
的ISP 程序。这个区域的内容在芯片出厂后没有人能够修改或擦除,即它是一个ROM 区。
在每个STM32 的芯片上都有两个管脚BOOT0 和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复
一般不使用内置SRAM 启动(BOOT1=1 BOOT0=1),因为SRAM 掉电后数据就丢失。
一般BOOT0 和BOOT1 跳线都跳到0(地)。只是在ISP 下载的情况下,BOOT0=1,BOOT1=0 ,下载完成后,把BOOT0 的跳线接回0,也即BOOT0=0,BOOT1=0 ,也可以不用更改
我们在这里采用CH340串口烧写下载程序,BOOT0和BOOT1分别设置为1和0,下载后可直接运行,但复位后代码不执行,可以在调试过程中,不用频繁更改boot电平
注意:如果JTAG 相关的引脚被用作普通IO,将无法下载(BOOT0 为低电平的情况下)。解决办法是用串口下载一次程序后再用JLINK 下载,或者将BOOT0 配置成高电平后下载。
Keil5中代码STM32单片机C语言代码如下:


84c6a848-ac52-11ed-bcd2-b8ca3a6cb5c4.webp


Keil5代码情况


编译好后,在FlyMcu软件进行下载:


将Boot电平设置好,


选好要下载的.hex文件,设置为STMISP


DTR的低电平复位,RTS高电平进BootLoader


点击开始编程,结果如下图:


84c6a849-ac52-11ed-bcd2-b8ca3a6cb5c4.webp


FlyMcu软件下载界面


耗时1.5s左右,写入1kb,下载完后,可看到STM 32 单片机开始执行程序,小灯开始闪烁(5mm黄色发光二极管,插在面包板上,正极(白色公专转母杜邦线)接A0引脚,负极接GND引脚(黑色公专转母杜邦线),其间串联一个220Ω的色环电阻)
效果如下图:


84c6a84a-ac52-11ed-bcd2-b8ca3a6cb5c4.webp


LED闪烁




登录icspec成功后,会自动跳转查看全文
博客评论
还没有人评论,赶紧抢个沙发~
发表评论
说明:请文明发言,共建和谐网络,您的个人信息不会被公开显示。