我在Ubuntu中用C进行IO编程。我需要端口的基地址来写数据。
我的笔记本电脑没有并行端口。所以我买了一个USB转并口接口。我插入设备并在/ dev / usb / lp0
中检测到它我运行“lsusb”查看设备列表,我也可以看到ID。但是我如何获得基地址?对于通常的硬件并行设备,基地址是0x0378。使用USB到并行设备时,未检测到此地址。
请帮忙。
答案 0 :(得分:4)
USB并行端口没有基地址 - 这对USB来说不是一个有意义的概念。我担心几年前通过in
和out
指令在PC硬件上进行I / O的日子已经结束,尽管许多旧的教程仍然存在于网络上。
您可以将字节作为字符设备写入并行端口,这些字节将显示在打印机端口引脚上。 USB适配器希望另一端像打印机一样完全握手数据 。如果你想进行通用的I / O原型设计,那么使用简单的USB微控制器(如Arduino)可能会更好。
答案 1 :(得分:2)
如果您仍然有兴趣将此USB转并行打印机设备用于自己的位冲击,那么了解其内置固件始终允许控制非常重要D0..D7 , INIT (作为输出), / ERR , ONL , PE (作为输入),但从不 / ACK ,忙碌(输入), / STB , / AF , / SEL (输出)引脚。 并且你需要一个8位锁存器(例如74HCT574)来在选通时捕获数据。
见here(https://www-user.tu-chemnitz.de/~ygu/bastelecke/PC/USB2LPT/faq#DIY) 特别是对于可能的数据速率。
从软件方面进行访问有点复杂但可能,您可能需要重新构建软件和硬件,以使这些适配器可用。我不知道Linux的情况如何访问,但恕我直言,你不需要编写内核模式驱动程序。