![](/img/trans.png)
[英]How to find which device is attached to a USB-serial port in Linux using C?
[英]How to find the base address of usb to parallel port device in Linux?
我在Ubuntu中用C语言进行IO编程。 我需要端口的基地址来写数据。
我的笔记本电脑没有并行端口。 所以我买了一个USB转并口接口。 我插入设备并在/ dev / usb / lp0中检测到它
我运行“lsusb”查看设备列表,我也可以看到ID。 但是我如何获得基地址? 对于通常的硬件并行设备,基地址是0x0378。 使用USB到并行设备时,未检测到此地址。
请帮忙。
USB并行端口没有基地址 - 这对USB来说不是一个有意义的概念。 我担心几年前通过in
和out
指令在PC硬件上进行I / O的日子out
结束了,尽管许多旧的教程仍然存在于网络上。
您可以将字节作为字符设备写入并行端口,这些字节将显示在打印机端口引脚上。 USB适配器希望另一端与打印机完全一样握手数据。 如果你想进行通用的I / O原型设计,那么使用简单的USB微控制器(如Arduino)可能会更好。
在此进一步讨论 。
如果您仍然有兴趣使用这种USB转并行打印机设备进行自己的位冲击,重要的是要知道它们的内置固件总是允许控制D0..D7 , INIT (作为输出), / ERR , ONL , PE (作为输入),但从不用于/ ACK , BUSY (输入), / STB , / AF , / SEL (输出)引脚。 并且您需要一个8位锁存器(例如74HCT574)来在选通时捕获数据。
请参阅此处 ( https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/faq#DIY ),特别是可能的数据速率。
从软件端访问有点复杂但可能,您可能必须重新构建软件和硬件以使这些适配器可用。 我不知道Linux的情况如何访问,但恕我直言,你不需要编写内核模式驱动程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.