USB固件烧写
作者:nieyong
编译好STM32的代码,得到hex格式的固件文件,如何烧写到主控中?
Crazepony将SWD调试接口预留出来,可以使用J-Link或者ST-Link等调试器进行开发,详见J-Link的使用及常见问题。Crazepony也支持USB口烧入,即采用ISP下载,操作简单。只需要安装cp2102驱动程序,使用一根Mini USB数据线连接电脑。这里就详细介绍使用USB固件烧写流程。
首先从crazepony的百度云盘中下载开发工具,点击这里。解压压缩文件得到3个文件夹。
安装cp2102驱动
cp2102是Crazepony上使用的USB转串口芯片。cp2102和STM32芯片以串口相连,和电脑PC以USB接口相连,这是Crazepony能够接上USB线对飞控/遥控器进行固件烧写编程和调试信息打印的原因。
首先要把cp2102的驱动在电脑PC上装好,这样电脑作为Host才能够识别到cp2102。这个驱动在32位windows xp系统/64位 windows 7系统下都测试通过。
安装成功之后,在我的电脑->设备管理->端口(COM和LPT),就可以看到Crazepony对应的串口号,例如下图为COM3。看到该串口中有关于CP210x的描述。
烧入hex文件
打开ISP下载器,载入需要下载的hex文件,具体如下图所示。
在硬件设计上,直接使用CP2102复位STM32并且引导进入串口升级固件的ISP下载模式。CP2102使用RTS高电平复位STM32芯片,然后使用DTR将STM32的Boot0引脚拉低,STM32进入串口升级固件的ISP下载模式。所以在ISP下载器上,必须选择左下角的“RTS的高电平复位,DTR高电平进Bootloader”。
查看打印信息
连上USB线,打开串口助手,波特率设置为115200,查看串口打印信息。默认每隔1秒打印一次传感器数据信息。
Crazepony默认出厂固件串口打印信息和上位机数据都关闭。USB串口打印和USB上位机同时只能够使用一个,不能够同时使用。原因是串口上的上位机数据在串口助手上看到的是乱码。要使用串口打印信息,请开启
SysConfig.h
中的DEBUG_UART
宏。要使用上位机查看信息,请关闭SysConfig.h
中的DEBUG_UART
宏,并开启main.c
中的CommPCUploadHandle()
函数。