【WSL2】WSL2+Win11 Python内使用ST-link & ST-Link/USB链接至WSL2

2023-10-27

【WSL2】WSL2+Win11 Python内使用ST-link & ST-Link/USB连接至WSL2

起由是准备使用pyswd这个库,实现利用Python通过ST-Link调试STM32,由于电脑中的Python开发环境安装在WSL2内的Ubuntu22.04中,需要实现WSL2可以访问Win11中的ST-Link外设,在此记录下配置过程。

pyswd库配置和libusb安装

  1. 在Ubuntu中,利用pip安装pyswd
    pip install pyswd
    
    参考:pyswd 1.0.0
  2. win11中配置ST-Link驱动为libusb
    • 到 https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/ 下载文件【libusb-win32-bin-1.2.6.0.zip】
    • 解压后进入~/bin/,打开程序【inf-wizard.exe】,选中STM32 STLink,生成对应的.inf驱动文件
      在这里插入图片描述
    • 点击Next后,选择合适的路径保存.inf驱动文件
      在这里插入图片描述
    • 然后点击Install Now…,完成驱动安装
      在这里插入图片描述
      如果出现:LIbusb:system policy has been modified to reject unsigned drivers
      解决方法:以管理员身份打开【inf-wizard.exe】,再重复上述操作.

WSL2连接至USB Device

如果不将WSL2连接至USB Device,当使用pyswd获取ST-Link的时候,会报如下错误:NoDeviceFoundException;表示WSL2中的Ubuntu无法连接到Win11中的USB Device。

  • WSL2连接至USB Device的操作过程可参考微软的官方文档进行:Connect USB devices

    ! WSL2 Kernel version要高于5.10.60.1,可在Powershell中使用wsl --update进行更新。

  • 操作完成后,在bash中调用lsusb,可以看见STLink Device说明链接成功。
    在这里插入图片描述

  • 操作完成后,若在调用pyswd出现如下错误:
    在这里插入图片描述
    其主要原因是上述微软官方指南的这段话:
    You should see the device you just attached and be able to interact with it using normal Linux tools. Depending on your application, you may need to configure udev rules to allow non-root users to access the device.

  • 后续可参考这个链接配置udev rules授予权限:udev rule to allow non-root access to libusb devices being ignored/not working #8502

  • Plus:每次断开USB设备后,都要重新在powershell使用usbipd wsl attach --busid <busid>进行连接,其中<busid>替换为对应的设备号,可通过命令usbipd wsl list查看。

更多的参考:https://github.com/dorssel/usbipd-win/wiki/WSL-support

备注

曾短暂出现了在Ubuntu bash中调用命令sudo service udev status/sudo service udev start,没有反应,后续利用命令sudo apt install udev安装udev后,重新调用上述语句,恢复正常…

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【WSL2】WSL2+Win11 Python内使用ST-link & ST-Link/USB链接至WSL2 的相关文章

  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • Android 时钟滴答数 [赫兹]

    关于 proc pid stat 中应用程序的总 CPU 使用率 https stackoverflow com questions 16726779 total cpu usage of an application from proc
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • 如何有效截断文件头?

    大家都知道truncate file size 函数 通过截断文件尾部将文件大小更改为给定大小 但是如何做同样的事情 只截断文件的尾部和头部呢 通常 您必须重写整个文件 最简单的方法是跳过前几个字节 将其他所有内容复制到临时文件中 并在完成
  • YOLOv8获取预测边界框

    我想将 OpenCV 与 YOLOv8 集成ultralytics 所以我想从模型预测中获取边界框坐标 我该怎么做呢 from ultralytics import YOLO import cv2 model YOLO yolov8n pt
  • Pandas Merge (pd.merge) 如何设置索引和连接

    我有两个 pandas 数据框 dfLeft 和 dfRight 以日期作为索引 dfLeft cusip factorL date 2012 01 03 XXXX 4 5 2012 01 03 YYYY 6 2 2012 01 04 XX
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • 从Python中的字典列表中查找特定值

    我的字典列表中有以下数据 data I versicolor 0 Sepal Length 7 9 I setosa 0 I virginica 1 I versicolor 0 I setosa 1 I virginica 0 Sepal
  • 加快网络抓取速度

    我正在使用一个非常简单的网络抓取工具抓取 23770 个网页scrapy 我对 scrapy 甚至 python 都很陌生 但设法编写了一个可以完成这项工作的蜘蛛 然而 它确实很慢 爬行 23770 个页面大约需要 28 小时 我看过scr
  • javascript 是否有等效的 __repr__ ?

    我最接近Python的东西repr这是 function User name password this name name this password password User prototype toString function r
  • 使用特定颜色和抖动在箱形图上绘制数据点

    我有一个plotly graph objects Box图 我显示了箱形 图中的所有点 我需要根据数据的属性为标记着色 如下所示 我还想抖动这些点 下面未显示 Using Box我可以绘制点并抖动它们 但我不认为我可以给它们着色 fig a
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 如何解决 PDFBox 没有 unicode 映射错误?

    我有一个现有的 PDF 文件 我想使用 python 脚本将其转换为 Excel 文件 目前正在使用PDFBox 但是存在多个类似以下错误 org apache pdfbox pdmodel font PDType0Font toUnico
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • Python ImportError:无法导入名称 __init__.py

    我收到此错误 ImportError cannot import name life table from cdc life tables C Users tony OneDrive Documents Retirement retirem
  • 实现 XGboost 自定义目标函数

    我正在尝试使用 XGboost 实现自定义目标函数 在 R 中 但我也使用 python 所以有关 python 的任何反馈也很好 我创建了一个返回梯度和粗麻布的函数 它工作正常 但是当我尝试运行 xgb train 时它不起作用 然后 我
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • 更改 Tk 标签小部件中单个单词的颜色

    我想更改 Tkinter 标签小部件中单个单词的字体颜色 我知道可以使用文本小部件来实现与我想要完成的类似的事情 例如使单词 YELLOW 显示为黄色 self text tag config tag yel fg clr yellow s

随机推荐

  • 【Yarn】yarn源码阅读之AsyncDispatcher

    文章目录 1 概述 1 1 图示如下 2 源码解读 2 1 继承关系 2 2 构造方法 2 3 serviceInit方法 2 4 serviceStart 2 5 dispatch 2 6 注册类型方法 2 7 GenericEventH
  • (三)Qlabel显示图片

    在 一 QT学习中 我们说过label这个控件是可以显示图片的 那么这篇让我们看下如何显示图片 首先让我们创建一个项目picture 为项目布置上对应的控件label 让图片显示在label上 代码很简单 如下 QLabel abel ne
  • Unity+ECS框架(Entity Component System)学习(图文详细+源码)(一)——概念

    Unity ECS框架 Entity Component System 学习 图文详细 源码 一 概念 官方链接 一 ECS介绍 Entity 实体 Component 组件 System 系统 实例化系统 实例化系统 二 ECS概念 En
  • Java开发主流框架有哪些?

    SSM组合 SSM是一种Java Web开发的组合框架 是Spring Spring MVC和MyBatis的缩写 Spring是一个轻量级的Java应用框架 提供了一系列的模块 包括IoC容器 AOP MVC框架 数据访问和事务等 可以帮
  • react native xcode unable to open configuration settings file

    解决方案 pod install 然后重开 pod install可能会很久 pod install verbose 可以看进度
  • blender动画全面学习教程

    大小解压后 31 8G 时长28小时 包含项目文件 1920X1080 MP4 语言 英语 中英文字幕 根据原英文字幕机译更准确 Gumroad 活着 Blender中的动画课程 云桥网络 平台获取课程 信息 Alive 是迄今为止发布的最
  • Python import Queue ImportError: No module named 'Queue'

    python3 中引入Queue 会报出这个问题 python3 中这样引入 import queue python2 中这样引入 import Queue 为了兼容 可以这样 import sys if sys version gt 3
  • 机器学习-线性回归-多维度特征变量

    1 假设函数 之前的几篇文章里面 我们都只是介绍了单维特征变量的线性回归模型 比如预测房价的时候 我们只用了房子的面积这个维度 接下来我们会去研究多个维度的线性回归模型 还是从预测房价这个例子入手 假设我们现在不只是单纯的考虑房子的面积 还
  • verilog 简单分频程序

    偶数分频 最简单二分频 在输入时钟上升沿翻转即可 N分频 N为偶数 计数器计数到N 2 1翻转 如进行4分频 count 4 2 1 1时翻转 6分频计数器计到2 翻转 程序如下 经过实测验证 正确 时序如图 可以看出 从36到42是一个周
  • 西瓜书 第一章 绪论

    1 1 引言 理解机器学习 人类的 经验 对应计算机中的 数据 让计算机来学习这些经验数据 生成一个算法模型 在面对新的情况中 计算机便能作出有效的判断 这便是机器学习 1 2 基本术语 假设我们收集了一批西瓜的数据 例如 色泽 青绿 根蒂
  • linux下只读文件的修改方法

    命令前面加sudo 是以管理员方式打开
  • vue+flask实现视频目标检测yolov5

    开始做这个之前 了解一些vue的基础 然后对flask完全不知道 所以特别感谢很多博主的文章 主要参考的是这篇文章 在WEB端部署YOLOv5目标检测 Flask VUE 博主在GitHub上详细的代码给我一个很好的参考 他采用的是前后端分
  • latex公式自动换行与不自动换行的实现

    例如在双栏中 行内公式太长 就会溢出 很难看 公式中的元素 默认 有些是能自动换行 有些是不能的 例如 内的东西就不能自动换行了 如果是运算符 就能自动换行 可以参考下面这个博客讲的 Latex中行内公式如果在该行不能显示完整则会自动从下一
  • 安装了多个java 如何切换java版本

    安装了多个java 如何切换java版本 问题描述 平常用的是java8 最近在学习java的新特性 这就需要从java8往更高的java版本切换 由于还在使用java8 测试完新特性后我需要再切换回java8 如何切换 安装java的时候
  • JAVA,同级包下的类引用不需要import

    类ServiceResponse 的属性含有同级包下的属性类型为EServiceResPonseStatus类型的变量 此时并没有import引入 而只需要类EServiceResPonseStatus存在即可 如果EServiceResP
  • 连续整数检测法原理C语言,最大公约数的三种算法(欧几里得递归算法、连续整数检测算法、公共质因数相乘算法)...

    最大公约数的算法在编程中是比较典型的 常见的有三种 按效率高低分别为 欧几里得递归算法 连续整数检测算法 公共质因数相乘算法 如下 1 欧几里得递归算法 第一步 如果n 0 返回m值作为结果 同时过程结束 否则进入第二步 第二步 m除以n
  • Dubbo——快速启动(2)

    快速启动 Dubbo 采用全 Spring 配置方式 透明化接入应用 对应用没有任何 API 侵入 只需用 Spring 加载 Dubbo 的配置即可 Dubbo 基于 Spring 的 Schema 扩展 进行加载 mvn
  • Spring Boot创建定时任务(并实现动态参数传递执行)

    关于Spring Boot创建定时任务非常简单 有两种方式进行创建 第一种注解方式 静态参数 使用 Scheduled 进行创建定时任务 仅仅几行代码就可以完成 而且支持灵活的参数表达式cron 还有支持简单的延时操作 例如 fixedDe
  • springboot实现小程序订阅消息推送

    1 拿到用户的openid 2 获取access token 3 调用小程序消息推送的接口 一 获取用户的openid 关于openid的获取百度一大堆方法 有兴趣的可以去查看一下 此处不在赘述 二 获取access token 关于acc
  • 【WSL2】WSL2+Win11 Python内使用ST-link & ST-Link/USB链接至WSL2

    WSL2 WSL2 Win11 Python内使用ST link ST Link USB连接至WSL2 pyswd 库配置和 libusb 安装 WSL2连接至USB Device 备注 起由是准备使用pyswd这个库 实现利用Python