国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

手把手一起完成Python上位機與下位機USB通信

這篇具有很好參考價值的文章主要介紹了手把手一起完成Python上位機與下位機USB通信。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

最近在使用Python設(shè)計上位機,下位機是ZYNQ7000,兩者通過USB進行數(shù)據(jù)傳輸。該文章是USB通信過程的踩坑記錄

一、安裝所需庫

首先,安裝pyusb和libusb兩個庫,命令如下:

pip install pyusb
pip install libusb

如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

二、Python測試USB通信

輸入程序:

import usb.core

all_devs = usb.core.find(find_all = True)
for dev in all_devs:
	print(dev)

報錯 usb.core.NoBackendError: No backend available,如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

三、usb.core.NoBackendError: No backend available錯誤解決

安裝libusb1包,命令如下:

pip install libusb1

如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

找到 libusb-1.0.dll 文件,路徑如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

將 libusb-1.0.dll 復(fù)制粘貼到如圖所示路徑:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python
再次運行程序,運行成功,如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

四、Python測試USB讀寫數(shù)據(jù)

USB設(shè)備的idVendor與idProduct,如果已經(jīng)安裝過驅(qū)動,可以在設(shè)備管理器->USB設(shè)備->屬性中查看,如果USB設(shè)備沒有驅(qū)動,下載Zadig工具(下面會提到,請繼續(xù)往下看)

import usb.core
 
dev =  usb.core.find(idVendor= 0x04B4, idProduct= 0x00F0)
print(dev) #USB設(shè)備的枚舉信息
 
#設(shè)備配置,使能端點
dev.set_configuration()
 
#定義端點寫函數(shù)
def write_bulk_out_ep(data):
        while(True):  
            try:
                data = dev.write(0x01, data, 1000)  #write(endpoint, data, timeout = None)
                print(data)
                break
            except Exception as e:
                print(e)
	
#定義端點讀寫函數(shù)		
def read_bulk_in_ep(len):
        while(True):  
            try:
                data = dev.read(0x81, len, 3000)  #read(endpoint, size_or_buffer, timeout = None)
                print(data)
                break
            except Exception as e:
                print(e)
 
data = bytes.fromhex('7e 7e 00 01 01') 
write_bulk_out_ep(data)
read_bulk_in_ep(10)

運行報錯 NotImplementedError: Operation not supported or unimplemented on this platform 忘記截圖了

五、解決 NotImplementedError: Operation not supported or unimplemented on this platform錯誤

下載Zadig工具,給USB設(shè)備安裝或更新驅(qū)動,下載鏈接 https://zadig.akeo.ie/

點擊Option,勾選List All Devices,選擇需要操作的設(shè)備,驅(qū)動選擇WinUSB,點擊Install Driver即可,如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python

注意:由于下位機的USB驅(qū)動我已經(jīng)安裝,這里是更改驅(qū)動。更改設(shè)備驅(qū)動將會導(dǎo)致該設(shè)備原來的功能不能使用,所以請謹慎操作,最好選擇沒用的設(shè)備或自己開發(fā)的USB設(shè)備進行測試

最終再次運行程序,USB讀寫數(shù)據(jù)成功,如圖所示:

python usb通信,筆記,一起學(xué)Python,嵌入式硬件,python上位機,zynq7000下位機,usb通信,pyusb,經(jīng)驗分享,python
請注意,程序中

usb.core.find(idVendor= 0x04B4, idProduct= 0x00F0)的idVendor和idProduct
dev.write(0x01, data, 1000) 的endpoint:0x01
dev.read(0x81, len, 3000)的endpoint:0x81

根據(jù)自己USB設(shè)備信息的實際情況填寫

希望本文對大家有幫助,上文若有不妥之處,歡迎指正

分享決定高度,學(xué)習(xí)拉開差距文章來源地址http://www.zghlxwxcb.cn/news/detail-724319.html

到了這里,關(guān)于手把手一起完成Python上位機與下位機USB通信的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 手把手一起實現(xiàn)Visual Studio 2022本地工程提交(和克隆)Gitee

    手把手一起實現(xiàn)Visual Studio 2022本地工程提交(和克隆)Gitee

    登錄Gitee,創(chuàng)建空倉庫,如圖: 新建倉庫: 打開Visual Studio 2022創(chuàng)建的工程,點擊創(chuàng)建Git存儲庫: 復(fù)制Gitee倉庫URL: 將URL填入,點擊創(chuàng)建并推送: 輸入Gitee用戶名和密碼: 刷新Gitee頁面,已提交代碼: 如圖,GlobalVariable.cs代碼中日期為private string globalUpdateTime = “2023.7.29”:

    2024年02月15日
    瀏覽(131)
  • 手把手教你完成一個Python與OpenCV人臉識別項目(對圖片、視頻、攝像頭人臉的檢測)超詳細保姆級記錄!

    手把手教你完成一個Python與OpenCV人臉識別項目(對圖片、視頻、攝像頭人臉的檢測)超詳細保姆級記錄!

    課程來源: 一天搞定人臉識別項目!學(xué)不會up直接下跪!(python+opencv)_嗶哩嗶哩_bilibili 環(huán)境配置詳見: 在conda虛擬環(huán)境中安裝OpenCv并在pycharm中使用_conda虛擬環(huán)境安裝opencv_好喜歡吃紅柚子的博客-CSDN博客 目錄 一、讀取圖片 1.1 imshow和WaitKey方法? ?1.2 代碼實現(xiàn) 1.3 效果展示?

    2024年02月03日
    瀏覽(22)
  • 【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信

    【上位機與下位機通信】使用WIFI模塊ESP8266連接單片機與上位機通信

    承接上文WIFI上位機部分:【上位機】通過WIFI上位機與網(wǎng)絡(luò)調(diào)試助手通信繪制曲線,現(xiàn)階段實現(xiàn)了STM32單片機與ESP8266WIFI模塊作為下位機與WIFI上位機通信。 ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-無線)模塊,此處使用的是正點原子團隊自主開發(fā)的ATK-ESP-01模塊。

    2024年02月05日
    瀏覽(214)
  • 【手把手一起學(xué)習(xí)】(八) Altium Designer 20修改和自定義原理圖標(biāo)題欄

    【手把手一起學(xué)習(xí)】(八) Altium Designer 20修改和自定義原理圖標(biāo)題欄

    直接對原理圖標(biāo)題欄屬性進行修改,操作如圖所示: 修改后,并不會顯示,故該方法不可用: 正確的操作如下,先選擇合適的模板: 然后,進行屬性的修改: 此時可以看到,已經(jīng)修改成功: 默認模板并不美觀,可以自定義個人風(fēng)格的標(biāo)題欄: 復(fù)制一份模板,重命名: 在

    2024年02月06日
    瀏覽(23)
  • 手把手完成前端Vue3 + Vite項目工程化搭建

    基于 Vue3 + Vite 搭建的前端工程化項目演示模板 開發(fā)環(huán)境: Node.js v16.14.2 + npm v8.3.2 開發(fā)工具: Visual Studio Code or WebStorm 源代碼管理: Git npm鏡像: npm config set registry https://registry.npmmirror.com 技術(shù)棧 描述 Vue 漸進式 JavaScript 框架 Vite 新一代前端開發(fā)與構(gòu)建工具 Element Plus 基于 Vue

    2024年04月11日
    瀏覽(30)
  • 手把手的教你使用Toolkit插件在詩情畫意中完成AI詩朗誦

    手把手的教你使用Toolkit插件在詩情畫意中完成AI詩朗誦

    本文分享自華為云社區(qū)《【云駐共創(chuàng)】手把手的使用Toolkit插件在詩情畫意中完成AI詩朗誦》,作者: 紅目香薰。 云原生時代,開發(fā)者們的編程方式、編程習(xí)慣都發(fā)生了天翻地覆的變化,大家逐漸地習(xí)慣在云端構(gòu)建自己的應(yīng)用。作為新一代的開發(fā)者們,如何更快速了解云,學(xué)

    2024年04月14日
    瀏覽(64)
  • 手把手教你用Python編寫郵箱腳本引擎

    手把手教你用Python編寫郵箱腳本引擎

    版權(quán)聲明:原創(chuàng)不易,本文禁止抄襲、轉(zhuǎn)載需附上鏈接,侵權(quán)必究! 郵箱是傳輸信息方式之一,個人,企業(yè)等都在使用,朋友之間發(fā)消息,注冊/登錄信息驗證,訂閱郵箱,企業(yè)招聘,向客戶發(fā)送消息等都是郵箱的使用場景;郵箱有兩個較重要的協(xié)議:SMTP和POP3,均位于OSI7層

    2024年02月06日
    瀏覽(104)
  • 手把手教Python項目環(huán)境的導(dǎo)出與導(dǎo)入

    手把手教Python項目環(huán)境的導(dǎo)出與導(dǎo)入

    當(dāng)我們嘗試 復(fù)現(xiàn)別人的項目 或 在新設(shè)備上 重新部署項目 時,需要確保使用的軟件包與原項目中使用的軟件包版本一致。(這是因為不同版本的軟件包可能會有不同的行為和功能,可能會導(dǎo)致項目的行為和結(jié)果不同,也可能會導(dǎo)致與其他軟件包的沖突。) 在 大型項目的開發(fā)

    2024年02月06日
    瀏覽(14)
  • 手把手教你用Python實現(xiàn)2048小游戲

    手把手教你用Python實現(xiàn)2048小游戲

    感覺好久沒有寫小游戲玩了,今天恰巧有空.這次我來用Python做個2048小游戲吧.廢話不多說,文中有非常詳細的代碼示例,需要的朋友可以參考下 目錄 一、開發(fā)環(huán)境 二、環(huán)境搭建 三、原理介紹 四、效果圖 Python版本:3.6.4 相關(guān)模塊: pygame模塊; 以及一些Python自帶的模塊。 安裝

    2024年04月28日
    瀏覽(94)
  • 爬蟲實戰(zhàn)|手把手教你用Python爬蟲(附詳細源碼)

    爬蟲實戰(zhàn)|手把手教你用Python爬蟲(附詳細源碼)

    實踐來源于理論,做爬蟲前肯定要先了解相關(guān)的規(guī)則和原理,要知道互聯(lián)網(wǎng)可不是法外之地,你一頓爬蟲騷操作搞不好哪天就… ?首先,咱先看下爬蟲的定義:網(wǎng)絡(luò)爬蟲(又稱為網(wǎng)頁蜘蛛,網(wǎng)絡(luò)機器人,在FOAF社區(qū)中間,更經(jīng)常的稱為網(wǎng)頁追逐者),是一種按照一定的規(guī)則,自

    2024年02月02日
    瀏覽(102)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包