USB是通用串行总线(Universal Serial Bus)的首字母缩写,是USB实施器论坛定义的串行主机到设备协议的标准。
我最近从 23 升级到了 fedora 24,但是在 24 中,一旦我登录我的帐户,我的 USB 鼠标就停止工作。尽管我可以完美地使用我的触控板。 这是运行 lsusb 命令显示的内容...
我以前使用的是华硕电脑,电脑上预装了一个名为“Asus Command”的程序。在程序中,有一个名为USBLock的功能,可以让您锁定USB端口进行数据传输...
我知道如何通过 BIOS 设置更改启动顺序,但我有一个独特的情况,以编程方式执行此操作会更好。 我工作的公司远程销售和支持软件到
我正在尝试对我的 SteelSeries Apex 3 TKL 键盘的 RGB 控件进行逆向工程。我的最终目标是使用 Python 控制 RGB,特别是 ctrl_transfer(bmRequestType, bmRequest, wVal...
列出具有指定 VID 和 PID 的 USB 设备,无需使用 Windows 驱动程序套件
有没有办法在windows上找到指定VID和PID的USB设备而不需要调用WDK函数?
如何在 Windows 中禁用游戏手柄/操纵杆上的按钮/轴?
在 Windows 98/XP/Vista/7 中,如何禁用操纵杆按钮/轴? 我使用的是 PlayStation 1 游戏手柄,通过 USB 适配器连接到我的电脑。问题是游戏手柄缺少双...
我有两个立体设置的 UVC 相机,由 C++ MediaFoundation 应用程序控制。我需要唯一地标识它们,以便为每个物理设备分配左侧和右侧。这款相机...
UsbManager 在模拟器中返回空设备列表 - 即使 USB 设备通过 usb-passthrough 连接
我正在调试由于升级到 SDK34 以及在 Android 14 上失败而导致的 USB 相关问题。我没有物理设备,所以我求助于模拟器。 我对 USB 设备进行了 chmoded:使该设备可读/
我可以在单个微控制器上将多个 TinyUSB 实例配置为 USB 设备 (VCP) 吗?
我有一种情况,我想从一个微控制器控制 3 个独立的单元。这些设备具有配置为 USB 主机的 USB 端口,并且需要一个 USB 虚拟 COM 端口。这可能吗
有一个问题,几乎是一个确切的名字。答案指出,对于(一般)Unicode 字符,他的解决方案取决于操作系统。 但是,HID 用法表 1.5 文档有专门的用法...
nanoFramework - 使用 Windows 作为带有 USB 到 I2C 转换器的目标
是否可以将nanoFramework与USB顶部I2C串行转换器一起使用,以便可以在Windows 10/11客户端上使用。 如果有的话,有推荐的硬件USB/I2C设备吗?
将 USB 视频捕获设备友好名称与 Python 中的 OpenCV 端口号相关联
我想在Windows平台上使用Python获取外部USB视频捕获设备的友好名称和USB端口号。 我正在使用 OpenCV 从 USB 捕获设备捕获视频。 OpenCV
是否可以在哪里找到有关 Logitech Unifying Receiver 的文档或 SDK? 我最近获得了一款无线鼠标,它配有罗技统一接收器(一个小型 USB 适配器
如何使用 Windows API 获取 USB 3.2 Gen 2x2(20Gb/s) 设备的当前链接通道数
我可以使用 IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX_V2 从 DeviceIsOperatingAtSuperSpeedPlusOrHigher 获取 USB 3.2 Gen 2(10Gb/s) 当前链接的单通道信息。 我怎样才能得到当前的链接...
STM32H5开发板移植USBX发送数据遇到bug,应该如何去排查问题
我使用stm32H5开发板移植了一个USBX,然后使用FreeRtos创建了一个发送数据的任务,但是该任务运行了3次才成功发送一次数据。我尝试使用
为什么当这个 ttyUSB 通过 C 寻址时,有时会向 stdout 写入一些内容,有时则不会?
嗨,我为 ttyUSB 设备用 c 语言编写了以下代码。部分代码来自其他来源: // C 库头文件 #包括 #包括 #包括 嗨,我为 ttyUSB 设备用 c 语言编写了以下代码。代码的某些部分来自其他来源: // C library headers #include <stdio.h> #include <string.h> #include <stdlib.h> // Linux headers #include <fcntl.h> // Contains file controls like O_RDWR #include <errno.h> // Error integer and strerror() function #include <termios.h> // Contains POSIX terminal control definitions #include <unistd.h> // write(), read(), close() // Custom headers //// klammern ////#include "some_functions.h" ////int write_log(char*); int main(int argc, char* argv[]) { if (argc < 2) { printf("Usage: %s <at-command>\n", argv[0]); exit(-1); } int serial_port = open("/dev/ttyUSB4", O_RDWR); // Check for errors if (serial_port < 0) { printf("Error %i from open: %s\n", errno, strerror(errno)); exit(1); } struct termios tty; // Read in existing settings, and handle any error if(tcgetattr(serial_port, &tty) != 0) { printf("Error %i from tcgetattr: %s\n", errno, strerror(errno)); return 1; } tty.c_cflag &= ~PARENB; // Clear parity bit, disabling parity (most common) tty.c_cflag &= ~CSTOPB; // Clear stop field, only one stop bit used in communication (most common) tty.c_cflag &= ~CSIZE; // Clear all bits that set the data size tty.c_cflag |= CS8; // 8 bits per byte (most common) tty.c_cflag &= ~CRTSCTS; // Disable RTS/CTS hardware flow control (most common) tty.c_cflag |= CREAD | CLOCAL; // Turn on READ & ignore ctrl lines (CLOCAL = 1) tty.c_lflag &= ~ICANON; tty.c_lflag &= ~ECHO; // Disable echo tty.c_lflag &= ~ECHOE; // Disable erasure tty.c_lflag &= ~ECHONL; // Disable new-line echo tty.c_lflag &= ~ISIG; // Disable interpretation of INTR, QUIT and SUSP tty.c_iflag &= ~(IXON | IXOFF | IXANY); // Turn off s/w flow ctrl tty.c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL); // Disable any special handling of received bytes tty.c_oflag &= ~OPOST; // Prevent special interpretation of output bytes (e.g. newline chars) tty.c_oflag &= ~ONLCR; // Prevent conversion of newline to carriage return/line feed // tty.c_oflag &= ~OXTABS; // Prevent conversion of tabs to spaces (NOT PRESENT ON LINUX) // tty.c_oflag &= ~ONOEOT; // Prevent removal of C-d chars (0x004) in output (NOT PRESENT ON LINUX) tty.c_cc[VTIME] = 50; // Wait for up to 1s (10 deciseconds), returning as soon as any data is received.; 5 sek ^= 50 tty.c_cc[VMIN] = 0; // Set in/out baud rate to be 9600 cfsetispeed(&tty, B9600); cfsetospeed(&tty, B9600); // Save tty settings, also checking for error if (tcsetattr(serial_port, TCSANOW, &tty) != 0) { printf("Error %i from tcsetattr: %s\n", errno, strerror(errno)); return 1; } // Write to serial port //unsigned char msg[] = { 'a', 't', '+', 'c', 'g', 'p', 'a', 'd', 'd', 'r', '=', '1', '\r' }; unsigned int argv1_len = strlen(argv[1]); char msg[argv1_len+2]; // unsigned char strcpy(msg, argv[1]); ////write_log(msg); strcat(msg, "\r"); write(serial_port, msg, sizeof(msg)); // Allocate memory for read buffer, set size according to your needs char read_buf [256]; // Normally you wouldn't do this memset() call, but since we will just receive // ASCII data for this example, we'll set everything to 0 so we can // call printf() easily. memset(&read_buf, '\0', sizeof(read_buf)); // Read bytes. The behaviour of read() (e.g. does it block?, // how long does it block for?) depends on the configuration // settings above, specifically VMIN and VTIME int num_bytes = read(serial_port, &read_buf, sizeof(read_buf)); // n is the number of bytes read. n may be 0 if no bytes were received, and can also be -1 to signal an error. if (num_bytes < 0) { printf("Error reading: %s", strerror(errno)); close(serial_port); return 1; }else if (num_bytes == 0) { printf("0"); close(serial_port); return 1; } // Here we assume we received ASCII data, but you might be sending raw bytes (in that case, don't try and // print it to the screen like this!) //printf("Read %i bytes. Received message: %s", num_bytes, read_buf); printf("%s", read_buf); fflush(stdout); ////removeLeadingNewlines(read_buf); ////write_log(read_buf); close(serial_port); return 0; // success } 这是我的 Makefile,它的构建没有错误或警告: WARNFLAGS = -W -Wall -Werror OPTFLAGS = -O3 DEBUGFLAGS = -ggdb3 -DDEBUG CFLAGS += $(WARNFLAGS) binaries = at_commander ifdef DEBUG CFLAGS += $(DEBUGFLAGS) else CFLAGS += $(OPTFLAGS) endif all: $(binaries) at_commander: some_functions.c clean: $(RM) *~ $(binaries) *.o 问题是为什么现在不规则地输出到控制台: root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at OK root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at OK root@OpenMPTCProuter:~/autostart# ./at_commander at OK root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at root@OpenMPTCProuter:~/autostart# ./at_commander at OK root@OpenMPTCProuter:~/autostart# 首先我认为这与刷新有关,但也许与我的代码中的错误时机有关。 提前谢谢您! 为什么当这个ttyUSB通过C寻址时,... 您的标题和问题表明您要么对自己正在做的事情了解不够,并且/或者写得不好。 “ttyUSB 设备”不是端点设备(例如闪存驱动器),而是通信接口。假设您使用电缆将某些设备连接到此“ttyUSB 设备”,并且您的目的是与该连接的设备进行通信。然而,您完全忽略了提及任何其他设备的任何信息。 ...有时某些内容会写入标准输出,有时则不会? 您对名词“something”的使用是不明确的,并且完全忽视了以下事实:这涉及(a)命令消息由您的程序传输,(b)该消息必须由远程单元接收和处理,( c) 响应消息必须由该远程单元传输,并且 (d) 该响应消息必须由您的程序接收/读取。 换句话说,“something”是来自远程单元/设备的响应,而(您的程序)失败为“sometimes not”表示该远程单元/设备没有响应。 所连接设备的间歇性响应可能表明向该设备发送了不正确的消息。最坏的情况是连接不良/不良(即电缆/硬件问题)。 您的帖子中只有一些线索可以识别您的程序尝试与之通信的连接设备。一种是注释掉的初始化。有对“at-command”的引用。显然,连接的设备是使用 AT(又名 Hayes)命令集的调制解调器。 您发布的程序有各种小问题,其中大部分已在评论中提到。 IMO 程序中的显着错误是发送消息/命令时不正确的行终止。 AT命令的格式为: 命令以AT开头,大小写均可; 命令以回车符和换行符结束。 但是,您的程序(如发布的那样)以换行符和空字符终止消息。调制解调器可能会感到困惑,因为它没有接收到关键的回车符。因此,偶尔会有OK的回应。
我正在编写一个 C++ 应用程序,它通过 FTD2xx.dll 库使用多种类型的 FTDI 设备(我不使用虚拟 COM 端口)。我使用 FT_CreateDeviceInfoList 函数来搜索连接的设备。 ...
如何让 Linux FunctionFS USB Gadget 在 Windows 10 上注册为 WINUSB 设备?
我有一个 BeagleBone Blue,我正在尝试将其构建到一个小型 USB 设备中,以便在我的 Windows 计算机上进行通信。 我有一个在启动时运行的 shell 脚本,用于配置
我有一个带有三个 LED 的 winwing 舵踏板,但这些 LED 不能直接从 USB hid evdev 访问, /sys/bus/hid/devices/0003:xxxx/输入/inputxx/功能/led 报告 0。 报告
是否可以将Android用作2FA设备,例如2因素YubiKey棒?看起来应该是可能的,因为我知道 Android 能够作为 USB 配件进行连接。