Linux下复位USB设备

Posted iot-yun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下复位USB设备相关的知识,希望对你有一定的参考价值。

 

有时候USB设备出错,这时我们希望通过软件复位一下USB设备,可以参考下面这段代码:

 

#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <errno.h>
#include <sys/ioctl.h>

#include <linux/usbdevice_fs.h>


int main(int argc, char **argv)
{
    const char *filename;
    int fd;
    int rc;

    if (argc != 2) {
        fprintf(stderr, "Usage: usbreset device-filename\n");
        return 1;
    }
    filename = argv[1];

    fd = open(filename, O_WRONLY);
    if (fd < 0) {
        perror("Error opening output file");
        return 1;
    }

    printf("Resetting USB device %s\n", filename);
    rc = ioctl(fd, USBDEVFS_RESET, 0);
    if (rc < 0) {
        perror("Error in ioctl");
        return 1;
    }
    printf("Reset successful\n");

    close(fd);
    return 0;
}

  

以上是关于Linux下复位USB设备的主要内容,如果未能解决你的问题,请参考以下文章

stm32 USB-CDC 硬件复位后

Linux内核 - 设备模型(下)

USB速率识别

STM32 软件复位并模拟USB拔插

Linux系统下查看USB设备名及使用USB设备

请教,Linux怎样查看usb设备的详细信息