针对STM32系列单片机,大家一般采用STLink和Jlink来下载程序,这里我们试一下CH340 USB转串口芯片的下载方法,主要是将Boot电平设置好。 采用:STM32F103C6T6芯片microUSB 接口连上电脑,com3端口 环境:Win10,提前安装好CH340/341系列的驱动
针对BOOT0和BOOT1的不同接线方式(高电平,低电平,不接线),开发板的下载情况分析如下图:(“x”代表不接线,“√”代表能成功下载)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Boot接线方式
首先对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语言代码如下:
Keil5代码情况
编译好后,在FlyMcu软件进行下载: 将Boot电平设置好, 选好要下载的.hex文件,设置为STMISP DTR的低电平复位,RTS高电平进BootLoader 点击开始编程,结果如下图:
FlyMcu软件下载界面
耗时1.5s左右,写入1kb,下载完后,可看到STM 32 单片机开始执行程序,小灯开始闪烁(5mm黄色发光二极管,插在面包板上,正极(白色公专转母杜邦线)接A0引脚,负极接GND引脚(黑色公专转母杜邦线),其间串联一个220Ω的色环电阻) 效果如下图:
LED闪烁
【学习交流群:197416462】
【学习教程分享】:
(stm32直流电机驱动)
中断和异常处理机制
(stm32 USART串口应用)
PWM脉宽调制技术
(定时器)
(stm32 温湿度采集)
stm32之SPI通信
【自己手机到的网盘免费资料包,需要的自行下载】:
嵌入式物联网 22个STM32项目、大赛作品,【华清远见发放资料包】http://makerschool.mikecrm.com/f4wjYBB
?
|