zoukankan      html  css  js  c++  java
  • [开发笔记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

    [参考资料]

  • 相关阅读:
    2019年11月28日开发手记
    2019年11月26日开发手记
    2019年11月25日开发手记
    2019年11月24日开发手记
    2019年11月23日开发手记
    R学习
    python学习目录
    自动化测试appium
    python爬虫的进阶用法
    asyncio
  • 原文地址:https://www.cnblogs.com/mr-bike/p/11965684.html
Copyright © 2011-2022 走看看