STM32通过Python下载bin文件
2025-01-08 来源:jianshu
例子:
test connection
stm32loader -p /dev/tty.SLAB_USBtoUART
dump content of FLASH memory
stm32loader -p /dev/tty.SLAB_USBtoUART -d
save content of FLASH memory
stm32loader -p /dev/tty.SLAB_USBtoUART -r file.bin
write bin file to FLASH from selected address
stm32loader -p /dev/tty.SLAB_USBtoUART -a 0x08003000 -w file.bin
mass erase, write bin file to FLASH, verify and execute application
stm32loader -p /dev/tty.SLAB_USBtoUART -m -w file.bin -f -x
help
stm32loader -h
原理:
通过串口通讯(Pyserial库)对进入bootload状态的STM32单片机进行指令发送,将KEIL生成的bin文件下载到单片机flash中
步骤:
发送0X7f进行连接STM32 返回值 0X1f或者0x79
发送0x00+0xff(异或运算 0x00^0xff) 询问单片机bootversion 返回值:
[121, 11, 34, 0, 1, 2, 17, 33, 49, 67, 99, 115, 130, 146, 121]
第三个为版本号0x22 即2.2发送0x02+0xfd(异或运算 0x02^0xff) 询问单片机chip id返回值:
[121, 1, 4, 16, 121] b'x79x01x04x10x79'
第三、四个为版本号0410发送下载指令,写入flash数据
KEIL生成bin文件: (KEIL4好像无效,5能正常使用)
$KARMARMCCbinfromelf.exe --bin --output=@L.bin !L
Pyvisa替代: 特别注意pyserial 3.0 以上版本不支持xp!!!
后续将pyserial用Pyvisa替代,注意事项:
从缓冲区读取需要注意read的截止符,会提前终止,必须不断循环读取,直到字节达到指定长度。
读取字节
data , _= rms.visalib.read(serial_port.session, serial_port.bytes_in_buffer)
data0 = list(data)
print(':'.join(['%02x' % d for d in data0])) #按位取值
write后需要ms级才能刷新缓冲区,需要延时0.1s才能进行read操作!!
- 意法半导体中国本地造STM32微控制器启动规模量产
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 基于机智云与STM32的智能拐杖安全监测系统在养老物联网中的应用
- 内置全栈安全,一站式满足CRA法案与IEC 62443标准——米尔STM32MP257核心板
- 如何用 STM32 FLASH 实现等效 100 万次擦写的 EEPROM 功能?
- 实战解析:通过一个小项目掌握STM32所有外设
- STM32学了两年半,却还是不会做项目
- 意法半导体推出最新STM32MP21微处理器,兼具高性价比、低功耗、高灵活性
- 基于STM32的矿井作业环境监测系统设计与实现
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析




