STM32通过Python下载bin文件

发布者:RainbowJoy最新更新时间:2025-01-08 来源: jianshu关键字:STM32  Python 手机看文章 扫描二维码
随时随地手机看文章
例子:

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中

步骤:

  1. 发送0X7f进行连接STM32   返回值 0X1f或者0x79

  2. 发送0x00+0xff(异或运算 0x00^0xff) 询问单片机bootversion  返回值:
    [121, 11, 34, 0, 1, 2, 17, 33, 49, 67, 99, 115, 130, 146, 121]
    第三个为版本号0x22 即2.2

  3. 发送0x02+0xfd(异或运算 0x02^0xff) 询问单片机chip id返回值:
    [121, 1, 4, 16, 121]   b'x79x01x04x10x79'
    第三、四个为版本号0410

  4. 发送下载指令,写入flash数据

KEIL生成bin文件: (KEIL4好像无效,5能正常使用)
$KARMARMCCbinfromelf.exe --bin --output=@L.bin !L

Pyvisa替代:  特别注意pyserial 3.0 以上版本不支持xp!!!
后续将pyserial用Pyvisa替代,注意事项:

  1. 从缓冲区读取需要注意read的截止符,会提前终止,必须不断循环读取,直到字节达到指定长度。

  2. 读取字节


data , _= rms.visalib.read(serial_port.session, serial_port.bytes_in_buffer)

data0 = list(data)

print(':'.join(['%02x' % d for d in data0]))  #按位取值


  1. write后需要ms级才能刷新缓冲区,需要延时0.1s才能进行read操作!!


关键字:STM32  Python 引用地址:STM32通过Python下载bin文件

上一篇:从零实现STM32的RT-Thread的RTOS系统
下一篇:STM32 x Arduino 通信 —— nRF24L01

推荐阅读最新更新时间: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
[单片机]
[单片机框架][上位机][<font color='red'>Python</font>+PySide2] Dfu升级工具(串口升级+Jlink烧录)
[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
[单片机]
[keil][<font color='red'>python</font>][单片机] keil 集成<font color='red'>bin</font><font color='red'>文件</font>生成 boot+app合并 dfu生成
如何使用Python编程语言和ADALM2000创建虚拟示波器
一个功能齐全的物理实验室造价不菲,其中的各式实验仪器常常价格昂贵,而且管理复杂。试想如果能够构建一个可放入口袋、随时便携的虚拟电子实验室,那么将为未来带来无限的可能。虚拟电子实验室,是通过一系列基于软件的应用来实现的仿真电子仪器所组成的模拟实验室环境,用户可以在该环境中开展大量电子实验。 本文旨在演示用户如何使用ADI ADALM2000和简单的开源编程语言Python开发所需的虚拟实验室仪器。通过Python与ADALM2000相结合,可以开发多种虚拟实验室仪器,如示波器、信号发生器、数字万用表等。其中,示波器作为物理电子实验室中常用的基本仪器之一,是个不错的入门选择,将在下文中重点讨论。 什么是示波器? 示波器可用
[测试测量]
如何使用<font color='red'>Python</font>编程语言和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 #设
[单片机]
<font color='red'>Python</font>实现的简单的单片机串口助手程序
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved