[開發筆記usbTOcan]PyUSB訪問設備


前面的幾個章節的介紹,基本把usbTOcan的底層代碼設計好,現在需要介紹PC端的PyUSB進行簡單的測試。

在文章開始之前,需要簡單的介紹一下整個系統。

 

0 | 部署

這里使用了兩塊TM4C123GXL開發板,一塊用來周期性的發送CAN報文,另一塊則是usbTOcan的主體,如下圖所示

 

 

實物圖如下,使用了層疊的方式,這樣節約空間,同時簡化了焊接 

 

 

 

 

1 | PyUSB介紹

PyUSB旨在成為一個易於使用的Python模塊來訪問USB設備。PyUSB依賴於本地系統庫來進行USB訪問。目前,它可以直接使用libusb 0.1、libusb 1.0、libusbx、libusb-win32和OpenUSB,也可以使用任何Python版本(從2.4開始),包括Python 3版本。[有道翻譯]

 

2 | PyUSB安裝

pip install pyusb

  

3 | PyUSB

使用以下代碼,周期性的讀取usbTOcan接收到的CAN報文

import usb.core
import usb.util
import array

dev = usb.core.find(idVendor=0x1cbe, idProduct=0x0003)
if dev is None:
    raise ValueError('Device not found')

while True:
    try:
        data = dev.read(0x82, 64)
        msginfo = get_msg_info(data)
        print(hex(msginfo.timestamps)+ " " + hex(msginfo.canid) + " " + hex(msginfo.dlc) + " "+msginfo.data_in_string)


    except usb.core.USBError as e:
        if e.args == ('Operation timed out',):
            continue

  

如下圖所示,打印輸出窗口的值分別對應時間戳,CANID,DLC,數據

 

 

 -----------------------------------------------------------------------------------END

 

[參考資料]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM