记录接触到的stm32flash程序
linux系统下载stm32程序的方法
stlink等
没有什么好说的,下载对应下载器的官方驱动即可
stm32flash串口下载
通过ch340串口将编译好的.hex文件烧写到stm32单片机上,这里主要说明这个方法。
stm32flash的下载
因为我们是用linux系统,所以可以直接apt install
就可以了
sudo apt install stm32flash
查看单片机的串口号
需要提前安装ch340驱动,可根据linux系统搭建esp32开发环境文章中的ch340驱动安装部分安装
执行ls /dev/tty*
查看电脑端口,再将单片机插入电脑再执行一遍,多出来的就是单片机的串口,我的是/dev/ttyUSB1,记下这个串口号。
执行sudo stm32flash /dev/ttyUSB1
语句,终端打印下面的信息即为正确连接。
$ sudo sudo stm32flash /dev/ttyUSB1
stm32flash 0.5
http://stm32flash.sourceforge.net/
Interface serial_posix: 57600 8E1
Version : 0x22
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0414 (STM32F10xxx High-density)
- RAM : Up to 64KiB (512b reserved by bootloader)
- Flash : Up to 512KiB (size first sector: 2x2048)
- Option RAM : 16b
- System RAM : 2KiB
下载程序
执行sudo stm32flash -w atk_f103.hex /dev/ttyUSB1
语句,终端打印出下面的信息,代表烧录成功
$ sudo stm32flash -w atk_f103.hex /dev/ttyUSB1
stm32flash 0.5
http://stm32flash.sourceforge.net/
Using Parser : Intel HEX
Interface serial_posix: 57600 8E1
Version : 0x22
Option 1 : 0x00
Option 2 : 0x00
Device ID : 0x0414 (STM32F10xxx High-density)
- RAM : Up to 64KiB (512b reserved by bootloader)
- Flash : Up to 512KiB (size first sector: 2x2048)
- Option RAM : 16b
- System RAM : 2KiB
Write to memory
Erasing memory
Wrote address 0x08000608 (100.00%) Done.
错误处理
在执行sudo stm32flash /dev/ttyUSB1
和sudo stm32flash -w atk_f103.hex /dev/ttyUSB1
语句时可能出现如下错误,这是因为忘记将boot引脚提前连接高低电平的原因,boot0接3.3,boot1接GND即可。
$ sudo stm32flash /dev/ttyUSB1
stm32flash 0.5
http://stm32flash.sourceforge.net/
Using Parser : Intel HEX
Interface serial_posix: 57600 8E1
Failed to init device.