例子:
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 Python
引用地址:
STM32通过Python下载bin文件
推荐阅读最新更新时间:2026-03-25 11:33
STM32通过Python下载bin文件
例子: 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.bi
[单片机]
Python通过SCPI获取优利德示波器数据并处理
1、背景 (1)批量采样波形数据,便于后期处理。 2、功能 (1)使用Python的pyvisa库,以及优利德支持的SCPI协议,控制示波器。 (2)以可编程指定的时序驱动设备和采样。 (3)以大约每秒10帧,每帧7K个采样点的速度存储数据。 3、亮点 (1)极高的自由度和可拓展性。 4、设备和连接 (1)设备型号 USB口数量大于2的电脑 * 1,需安装Python环境 UPO1202S-E *1 ESP32 * 1 被测设备 导线若干 掌握相关技能 (2)连接方式,如下图所示 5、代码实现 https://github.com/panda-alt/PyScopeRead 6.演示
[测试测量]
基于机器人算法的Python代码合集
本文是一些(特别是自动导航算法)的代码合集。
一、环境需求
Python 3.6.x
numpy
scipy
matplotlib
pandas
cvxpy 0.4.x
二、怎样使用
安装必要的库;
克隆本代码仓库;
执行每个目录下的python脚本;
如果你喜欢,则收藏本代码库:)
三、本地化
3.1 扩展卡尔曼滤波本地化
该算法利用扩展卡尔曼(Exnded Kalman Filter, EKF)实现混合本地化。
蓝线为真实路径,黑线为导航推测路径(de reckoning tra
[机器人]
[单片机框架][上位机][Python+PySide2] Dfu升级工具(串口升级+Jlink烧录)
环境: python 3.6.8 编译: .make.bat main.py 安装命令: pip install xxx 依赖:PySide2, pyserial, pyinstaller, pylint, 其余根据提示安装。 ├─ui 存放UI文件 │ └─qss 皮肤 │ └─black_rc ├─res 程序图标 ├─src │ ├─app 业务功能模块 │ ├─lib 一些支持库 │ ├─module 异步串口控件 │ ├─protocols DFU协议 │ └─ui_opt 控件信号槽绑定 └─build
[单片机]
[keil][python][单片机] keil 集成bin文件生成 boot+app合并 dfu生成
一、 首先配置keil执行工具 .file_handling.bat @L !L $K 输出文件名根据自身定义 二、 编写bat脚本(此处需要根据工具存放路径进行更改 xBin2Dfu/merge_file) @echo off set bin=%1 set axf=%2 set keilpath=%3 echo current file:%bin%.bin echo current axf:%axf% echo current keilpath:%keilpath% :: 生成bin %keilpath%ARMARMCCbinfromelf.exe --bin --output=.outbin%bin%.b
[单片机]
如何使用Python编程语言和ADALM2000创建虚拟示波器
一个功能齐全的物理实验室造价不菲,其中的各式实验仪器常常价格昂贵,而且管理复杂。试想如果能够构建一个可放入口袋、随时便携的虚拟电子实验室,那么将为未来带来无限的可能。虚拟电子实验室,是通过一系列基于软件的应用来实现的仿真电子仪器所组成的模拟实验室环境,用户可以在该环境中开展大量电子实验。 本文旨在演示用户如何使用ADI ADALM2000和简单的开源编程语言Python开发所需的虚拟实验室仪器。通过Python与ADALM2000相结合,可以开发多种虚拟实验室仪器,如示波器、信号发生器、数字万用表等。其中,示波器作为物理电子实验室中常用的基本仪器之一,是个不错的入门选择,将在下文中重点讨论。 什么是示波器? 示波器可用
[测试测量]
玩转USB HID系列:Linux下使用Python开发USB HID
实验环境 ubuntu 16.04 LTS 64-bit python 3 STM32做下位机 开发步骤 安装pyusb 库 pip install pyusb 我们来与HID设备通讯! 我的STM32信息: interface 0 END POINT 0x01: OUT END POINT 0x82: IN 包大小:64 byte 完成功能:PC机向STM32写入2个字节(查询命令) STM32返回5个字节: :数据长度(这里应该为4) - :一个double的电压值的内存形式 import usb.util import usb.core import sys from ctypes import * import
[单片机]
Python实现的简单的单片机串口助手程序
项目中遇到需要用电脑通过串口来控制单片机IO口,查询了一些资料,可以使用python来实现简单的串口通信, 所以用python实现了一个简单的单片机串口助手,可以将串口助手发往单片机的字符回传给串口助手。也可以 将配合单片机程序对单片机进行控制。 python实现的串口助手代码如下: import time; #需要调用延时函数 import serial #需要调用串口库 import binascii #需要将传送的字符进行转换 if __name__ == '__main__': ser = serial.Serial(); #生成串口 ser.baudrate = 4800 #设
[单片机]