龙空技术网

「开发笔记usbTOcan」PyUSB访问设备

单车先生MrBike 100

前言:

今天姐妹们对“pythonusb”大体比较关注,各位老铁们都想要学习一些“pythonusb”的相关内容。那么小编在网络上收集了一些关于“pythonusb””的相关文章,希望兄弟们能喜欢,你们快快来了解一下吧!

前面的几个章节的介绍,基本把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.coreimport usb.utilimport arraydev = 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


[参考资料]

标签: #pythonusb