Articles of USB

Linux的Ubuntu的自动分配每个物理USB端口相同的挂载点

我是一个初学者在Linux 我想要Ubuntu的映射一个给定的USB物理端口的每个USB存储钥匙相同的安装点。 udev的? 谢谢

NXC通过USB进行通讯

你将如何通过USB端口发送数据并在我的Linux机器上接收数据? task main () { byte data[2] = {1,2}; while (1) { Wait(1000); SetUSBOutputBuffer(0, 2, data); } } 编译它: nbc -d -Z2 usb.nxc dmesg的: usb 2-1.2: reset full-speed USB device number 6 using ehci_hcd 现在我怎样才能得到NXT发送的“数据”?我怎样才能用C语言编写一个读取USB缓冲区的Linux程序?

通过USB指令步进电机控制器

我试图在Gnu / Linux上的Trinamic StepRocker步进电机控制器上做一些实验。 我以前曾通过USB将设备连接到Windows机器,并使用Trinamic的专有软件来testing控制器是否按预期工作,似乎是这样。 StepRocker的初学者手册提到了某些应该通过串行接口发送的命令来左右旋转电机,或者使其停止。 但是当我通过USB连接这个控制器到一个Gnu / Linux计算机,并且想要编写我自己的C ++(libusb)程序来使电机移动时,我不太清楚我的出发点应该是什么。 控制台应用程序(我打算写)应该是非阻塞的。 下面是一个发送数据报的图像和发出旋转命令时收到的响应: 我试图编写一个简单的程序,将图片中显示的旋转值数据报送入电机控制器: #include <stdio.h> #include <string.h> #include <fcntl.h> #include <errno.h> #include <termios.h> #include <unistd.h> int fd1; int wr; int main() { fd1=open("/dev/ttyACM0", O_RDWR | O_NOCTTY | O_NDELAY); if (fd1 == -1 ) { perror("open_port: Unable to open /dev/ttyACM0"); } else { fcntl(fd1, F_SETFL,0); printf("Port […]

如何在VCP模式下使用FDTI芯片?

我试图得到一个基于FT245RL芯片的SainSmart USB中继板,工作时间很可怕。 我的印象是,我可以用命令行来控制继电器,例如: echo -e -n "\xFF\x1\x1" > /dev/ttyUSB1 当设备自动安装,我想我已经设置了波特率和权限,但在我的Debian挤压机或CentOS 5机器上没有任何反应。 SainSmart的支持是毫无价值的。 我决定尝试在Windows上,所以我安装了驱动程序,并在Python中写了一个小程序: import serial ser = serial.Serial(2) #COM3 ser.write(chr(255) + chr(0) + chr(1)) ser.close 依然没有。 也许这是一个硬件问题,所以我安装了一个提供的Windows程序。 当点击继电器button时,它看到设备并工作。 不鼓励,我退出他们的程序,寻找我的错误(找不到任何),但无论如何尝试,它的工作原理! 我写了一个更大的程序来做各种各样的酷东西,很酷的事情发生,直到我拔掉设备。 当我插回去,没有任何工作。 我必须运行并退出继电器控制程序,然后我的代码才能执行任何操作。 我怀疑我必须使用像FT_SetBitMode()这样的d2xx驱动。 有没有办法只使用VCP模式? PyUSB将不会安装在我的电脑上,并不适用于Linux。 我想要的只是一个简单的方法来控制在Linux上使用Python的中继。

如何确定USB设备的IRQ号码?

我是驾驶员发展新手。 但是,我购买了一个OSR USB FX2学习工具包,它附带了Windows内核/用户模式驱动程序的示例代码。 不过,我在Linux(Ubuntu 12)中编写驱动程序。 我已经成功地发送了控制命令并从设备接收到控制命令的返回。 我也能够通过设备支持的BULK OUT / IN端点成功发送和读取数据。 还有一个我还没有完成的实验。 该设备有以下端点: 1. BULK (OUT) –> Address 0x06 2. BULK (IN) –> Address 0x88 3. INTERRUPT (IN) –> Address 0x81 我无法弄清楚如何findINTERRUPT(IN)端点的IRQ号码 。 我明白如何使用以下方法安装IRQ处理程序: int request_irq (unsigned int irq, irq_handler_t handler, unsigned long irqflags, const char * devname, void * dev_id); 并用正确的函数原型编写处理程序。 但是,我想知道如何find设备中断的IRQ行(IRQ编号)? 也就是说,如何确定上面的request_irq函数中参数unsigned int […]

在C / C ++ / Java中查找USB设备的信息

我需要使用我的C ++程序列出现有的USB集线器和集线器中连接的设备。 我可以使用命令从terminal打印连接在集线器上的USB集线器和设备 lsusb lsusb -v 我想在我的C ++程序中使用该function。 我怎样才能以编程方式做到这一点。 是否有任何C ++类可用于我的Qt应用程序或c或java.this是从https://unix.stackexchange.com/questions/61484/find-the-information-of-usb-devices-在-C #include <stdio.h> #include <usb.h> main(){ struct usb_bus *bus; struct usb_device *dev; usb_init(); usb_find_busses(); usb_find_devices(); for (bus = usb_busses; bus; bus = bus->next) for (dev = bus->devices; dev; dev = dev->next){ printf("Trying device %s/%s\n", bus->dirname, dev->filename); printf("\tID_VENDOR = 0x%04x\n", dev->descriptor.idVendor); printf("\tID_PRODUCT = 0x%04x\n", dev->descriptor.idProduct); } […]

拦截input设备发送的数据

我试图logging通过USB连接到电脑的钢琴来的任何input数据。 $ lsusb … Bus 003 Device 046: ID fc08:0101 …. Bus 003 Device 046: ID fc08:0101是我的钢琴。 如果我做$ cat /dev/bus/usb/003/046我得到一些奇怪的东西: P e 2 $ $A$$ $ $ % % 另外,我写了一个NodeJS脚本,它应该创build一个读取stream和日志数据: var Fs = require("fs"); var str = Fs.createReadStream("/dev/bus/usb/003/046"); str.on("data", function (chunk) { console.log("data: " + chunk.toString()); }); str.on("error", function (chunk) { console.log("error" + chunk.toString()); }); […]

使用iSerialNumber USB设备描述符来唯一标识GoPro相机

我感兴趣的领域是从以下输出的iSerial: lsusb -d <idVendor>:<idProduct> -v 非唯一iSerialNumber的示例输出: Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 bDeviceClass 239 Miscellaneous Device bDeviceSubClass 2 ? bDeviceProtocol 1 Interface Association bMaxPacketSize0 64 idVendor 0x0402 ALi Corp. idProduct 0x9665 Gateway Webcam bcdDevice 0.09 iManufacturer 3 iProduct 1 iSerial 0 <– Three string descriptors exist to provide details of the manufacturer, product […]

批量邮件传输USB Linux

我正在开始为dds生成器编写自己的Linux驱动程序。 当内核调用探测function时,我想写2个大容量的消息给生成器。 但是我不知道如何调用usb_bulk_msg函数。 我希望你能帮我。 HSYNC static int dds_probe(struct usb_interface *interface, const struct usb_device_id *id) { int retval = 0; retval = usb_bulk_msg(); dev_info(&interface->dev, "DDS generator is now attached\n"); return 0; }

确定正确的/ dev / usb / lp *

有没有办法确定哪个打印机使用哪个/ dev / usb / lp *? 我build立一个系统,应该自动分配打印机,如果重新连接。 而且我不想使用udev规则强制分配。 我可以在总线上find所需的设备,但找不到它的/ dev / usb / lp *。 请帮忙。