本文旨在说明如何使用串口给STM32F103C8T6烧录程序,验证软、硬件能否正常工作。
如果开发板不能方便地调节BOOT启动模式,此法无效,需使用下载器如ST-Link。
需用到的软硬件:CubeMX,Keil,FlyMcu,STM32F103C8T6最小系统板,USB TO TTL转换器。
多嘴一句:什么是USB TO TTL?单片机串口输出信息一般需要在上位机(比如电脑)上查看。单片机I/O直接出来的是串行接口、TTL电平,而电脑是USB接口、USB电平。二者通信接口、电平都不同,需要转换,USB TO TTL就起转换作用。常用的USB转串口芯片有CH340、CP2102、PL2303、FT232等。
1、接线
电脑 - USB TO TTL - STM32。
注意USB TO TTL的TXD接PA10(STM32 USART1的RXD),RXD接PA9(STM32 USART1的TXD)。
2、CubeMX配置
- 打开CubeMX,新建工程
- 在搜索框中搜索型号并选择
- 引脚配置 - GPIO配置和USART1(只能通过USART1烧入程序!)配置如下面两张截图。(1)板载的LED阴极连接着单片机的PC13引脚,阳极连接着3.3V电平,所以配置PC13引脚,选输出模式(GPIO_OUTPUT)。(2)USART1的Mode里选择Asynchronous(异步的)。注意下面的参数,波特率是115200Bit/s。
- 引脚配置 - SYS选择No Debug,由于是串口烧录,没有用任何下载器。
- 时钟配置 - 使用高速时钟(板子上金属封装的8M晶振),低速时钟(旁边黑色塑料封装的32.768k晶振)设为Disable,用不着它。配置方法为下面两张截图。
- 工程相关设置。参考下面两张截图。如果编辑器用的是Keil,请选择MDK-ARM。另外,勾选“Generate peripheral...”。工程保存路径、生成代码的路径(一般和工程放在一起)也在这个页面设置。
3、程序
点击GENERETE CODE生成代码,在Keil中打开。加入红点标记的代码,意思是将PC13设置为低电平。
记得在魔术棒中勾选生成HEX文件,然后编译。
4、将程序写入单片机
FlyMcu需要设置的地方如图。有两点需要说明:1、选择的Port端口需要与USB TO TTL连接电脑的端口一致,可以右击 我的电脑 - 管理 - 设备管理器 - 端口 中找到。2、检查烧录的文件路径是否正确。
配置完毕后,将单片机的BOOT1(靠近RESET的那个)置0,BOOT0置1,按一下复位键,点击FlyMcu的开始编程即可。
5、程序执行
将BOOT0置0,按一下复位键,如果顺利的话,可以看到灯亮起。