BJTXBLX 2024-01-20 13:59 采纳率: 0%
浏览 2

libusb-1.0

使用libusb-1.0.lib库
USB通讯使用libusb_control_transfer传输数据,返回-5,没有办法获取数据

uint8_t bmRequestType = LIBUSB_REQUEST_TYPE_VENDOR | LIBUSB_RECIPIENT_DEVICE | LIBUSB_ENDPOINT_OUT;
            uint8_t bRequest = 0x13; 
            uint16_t wValue = 0x0000;
            uint16_t wIndex = 0x0000;
            unsigned char data[256]; 
            result = libusb_control_transfer(dev_handle, bmRequestType, bRequest, wValue, wIndex, data, sizeof(data), 1000);


int results = libusb_control_transfer(dev_handle,
                0xc0,
                0x13,
                0x0000,
                0x0000,
                lengbuffer,
                sizeof(lengbuffer),
                5000);

就是想实现从设备读取字符数据设备信息,也可以将数据写入设备

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2024-01-20 16:11
    关注

    【以下回答由 GPT 生成】

    问题: 在使用libusb-1.0库进行USB通信时,我遇到的问题是无法正确读取从设备发送过来的数据。

    我想要从设备读取字符数据。

    以下是我的代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <libusb-1.0/libusb.h>
    
    #define VENDOR_ID 0xXXXX
    #define PRODUCT_ID 0xXXXX
    
    int main()
    {
        libusb_device_handle *dev_handle;
        libusb_device *device;
        libusb_context *ctx = NULL;
        int r;
    
        r = libusb_init(&ctx);
        if (r < 0)
        {
            printf("Error initializing libusb: %d\n", r);
            return 1;
        }
    
        dev_handle = libusb_open_device_with_vid_pid(ctx, VENDOR_ID, PRODUCT_ID);
        if (dev_handle == NULL)
        {
            printf("Cannot open USB device\n");
            libusb_exit(ctx);
            return 1;
        }
    
        // 在这里进行数据读取操作
    
        libusb_close(dev_handle);
        libusb_exit(ctx);
    
        return 0;
    }
    

    问题描述: 我使用libusb-1.0库进行USB通信时,无法正确读取从设备发送过来的数据。我确定设备已经正确连接,并且能够与设备进行通信,但是读取操作未能返回期望的数据。

    我希望能够知道如何正确使用libusb库来读取从设备发送过来的字符数据。

    请问您对这个问题有什么解决方案吗?


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 1月20日