当前位置: 首页 > news >正文

冠县网站制作友情网站

冠县网站制作,友情网站,阿里云ecs网站建设,WordPress对接阿里云cdn背景 前段时间用MicroPython开发了一个项目,硬件是ESP32-C3,目前准备量产,我需要提供固件以供加工厂批量烧录,需要把我有程序的板子里的程序读出来,然后下到别的板子上,以下做这件事情的过程记录。 1.固件…

背景

前段时间用MicroPython开发了一个项目,硬件是ESP32-C3,目前准备量产,我需要提供固件以供加工厂批量烧录,需要把我有程序的板子里的程序读出来,然后下到别的板子上,以下做这件事情的过程记录。

1.固件读取烧录

在准备ESP32-C3硬件的量产过程中,将MicroPython程序固化到设备中,有以下步骤:

1.读出固件

对于已经烧录到某个ESP32-C3板子上的固件,要读出并复制到其他板子上,可以使用esptool.py或其他串行通信工具来做这个工作。以下是使用esptool.py读取固件的一个基本示例:

esptool.py --chip esp32c3 --port /dev/ttyUSB0 read_flash 0x10000 0x100000 firmware.bin

--chip esp32c3指定了芯片类型;

--port /dev/ttyUSB0指定了ESP32-C3连接到计算机的串行端口;

read_flash是要执行的操作,0x10000是开始读取的起始地址,0x100000是要读取的长度(这个长度需要您根据实际的固件大小来决定);

firmware.bin是读取的内容保存到的文件;

2.烧录到新的ESP32-C3板子

在获取了固件镜像文件后,您可以使用esptool.py将这个镜像烧录到新的ESP32-C3板子上。烧录命令类似于:

esptool.py --chip esp32c3 --port /dev/ttyUSB0 write_flash 0x10000 firmware.bin

在这里,write_flash是烧录操作,0x10000是烧录的起始地址,firmware.bin是固件文件。

2.烧录图形界面

接下来,要用PysimpleGUI来做个烧录界面,包含串口设置,文件选择,擦除和烧录的按钮,用于执行以上的烧录代码。

要使用 PySimpleGUI 创建一个图形界面,用于设置串口,选择文件以及执行擦除和烧录操作,可以参考下面的代码示例。这个示例提供了一个基本的界面框架,并使用了 esptool.py 的命令行操作。

要用到 PySimpleGUI 和 pyserial 库。如果没有安装,可以使用 pip 进行安装:

pip install PySimpleGUI pyserial

接下来是代码示例:

import os
try:import PySimpleGUI as sgimport serial
except:os.system('pip install PySimpleGUI pyserial')import PySimpleGUI as sgimport serial  
import subprocess
from serial.tools import list_ports  # 修正导入# 获取系统中的串口列表
def get_serial_ports():ports = list_ports.comports()  # 修正使用list_portsreturn [port.device for port in ports]# 获取系统中的串口列表
def get_serial_ports():ports = list_ports.comports()  # 修正使用list_portsreturn [port.device for port in ports]# 执行esptool的命令
def run_esptool_cmd(cmd):try:process = subprocess.run(cmd, shell=True, check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)return process.stdout.decode()except subprocess.CalledProcessError as e:return e.stderr.decode()# GUI Layout
layout = [[sg.Text('串口:'), sg.Combo(get_serial_ports(), size=(10, 1), key='PORT'), sg.Button('刷新串口')],[sg.Text('固件文件:'), sg.Input("./firmware.bin",size=(25, 1), key='FIRMWARE'), sg.FileBrowse('浏览')],[sg.Button('读取'), sg.Button('擦除'), sg.Button('烧录')],[sg.Output(size=(60, 5))]
]# Create the window
window = sg.Window('ESP32-C3 烧录工具', layout)# Event Loop
while True:event, values = window.read()if event == sg.WIN_CLOSED:breakelif event == '刷新串口':window['PORT'].update(values=get_serial_ports())elif event == '擦除':if values['PORT']:cmd = f'esptool.py --chip esp32c3 --port {values["PORT"]} erase_flash'print("发送擦除指令"+cmd+run_esptool_cmd(cmd)我想用PYSIMPLEGUI来做个烧录界面,包含串口设置,文件选择,擦除和烧录的按钮,用于执行以上的烧录代码,请给出代码示例)else:print("请先选择一个串口")elif event == '读取':if values['PORT'] and values['FIRMWARE']:cmd = f'esptool.py --chip esp32c3 --port {values["PORT"]} read_flash 0x10000 0x100000 {values["FIRMWARE"]}'print("读取返回"+cmd+run_esptool_cmd(cmd))else:print("请先选择一个串口和文件保存路径")elif event == '烧录':if values['PORT'] and values['FIRMWARE'] and os.path.exists(values['FIRMWARE']):firmware_path = values['FIRMWARE']cmd = f'esptool.py --chip esp32c3 --port {values["PORT"]} write_flash 0x10000 "{firmware_path}"'print("发送烧录指令"+cmd+run_esptool_cmd(cmd))else:print("请确保选择了串口和固件文件,并且固件文件路径正确")# Close the window
window.close()

代码说明:

  • list_ports.comports() 函数用来获取当前系统上可用的串口。

  • run_esptool_cmd 函数用来执行 esptool.py 的相关命令并捕捉输出。

  • 界面布局定义了串口选择、文件选择和操作按钮。

  • 事件循环在接收到事件时执行相关操作,比如刷新串口列表,执行擦除和烧录操作。

如果有任何疑问,可以微信联系我,全网同名。

http://www.hkea.cn/news/549918/

相关文章:

  • 织梦网站模板源码下载真实有效的优化排名
  • 网站建设过程中什么最重要磁力链bt磁力天堂
  • html5企业网站案例鹤壁搜索引擎优化
  • 网站建设平台简介链接交换平台
  • 照片展示网站模板宁波seo咨询
  • 奉贤建设机械网站制作长沙网址seo
  • 上海企业网站模板建站常用的网络推广方法
  • 大连零基础网站建设教学培训济南seo优化公司
  • html 做网站案例简单网站推广建设
  • 践行新使命忠诚保大庆网站建设线上广告
  • 定制网站建设服务商商家联盟营销方案
  • 集团官网建设公司外贸seo推广公司
  • 佛山新网站制作平台网站诊断工具
  • 做PPT的网站canvawhois查询
  • 营销型网站建设吉林定制化网站建设
  • 个人网上公司注册流程图新站优化案例
  • 做se要明白网站明星百度指数排名
  • 网页微博草稿箱在哪西安seo推广优化
  • 嘉兴微信网站建设谷歌首页
  • 什么网站做海报b站不收费网站
  • 如何自己做个简单网站seo知识点
  • 有哪些做批发的网站有哪些手续百度推广优化是什么意思
  • 用阿里巴巴店铺做公司网站怎么样引擎搜索有哪些
  • 网页制作软件属于什么软件类别简述seo的优化流程
  • 网站建设 公司新闻谷歌排名网站优化
  • 怎样做自己的vip解析网站佛山外贸seo
  • 我的网站在百度搜不到了seo是什么职业做什么的
  • 网站私信界面国外网站seo免费
  • wordpress mysql类惠州网站seo
  • 为什么做网站必须要用域名举出最新的网络营销的案例