4

我有一个 USB 转并行端口设备,我想在现代 Windows 操作系统(xp 和更新版本)上通过 c++ 与之交互。

我做了一些研究,但是在对这些 USB 转并行端口设备之一进行编程时,信息有点不完整(大部分信息都过时了,并假设您在主板中内置了一个并行端口,有些东西我的全新电脑没有)。一个参考文献甚至说,如果不进行某种软件更改,就不可能从 C++ 程序将 USB 连接到并行端口。

我想要做的就是能够在运行现代 Windows 操作系统的现代计算机上通过 USB 到并行端口设备读取或写入 8 位到并行端口(端口专用于读取或写入)。

有没有快速简便的方法来做到这一点?一些示例代码将不胜感激。

另外,我可以与我的计算机连接多少个这些 USB 转并行端口?由于某种遗留寻址,我是否仅限于 3 个,或者我可以拥有尽可能多的 USB 和 CPU 能够支持的数量吗?

使用 VC++ 2008,运行 Windows 7 x64 和 Core i7 860。

编辑:更多信息......

我尝试过使用 inpout23 和一些预先编写的测试程序。它编译得很好,运行得很好,声称可以读取和写入并行端口。我将我的 USB 转并行端口连接到计算机,并将该端口连接到我已经识别、剥离并焊接到一种插头上的电缆上,以便快速插入面包板进行测试。没有一个输出引脚更改为程序所说的写入它们的内容(相反,它们都设置为高电平并且从未更改)。

4

3 回答 3

3

我过去做过这件事,我有好消息也有坏消息。

好消息是它总是有效(有时需要调整),这是对设计极其强大协议的电子制造商的致敬。显然,USB 到并行转换器都提供了硬件端口仿真。

坏消息是“bitbanging”接口模型的性能很糟糕。如果您不介意缓慢的更新,这根本不是问题。我用它来编程 uController,很快我的不耐烦就克服了串行或 USB 编程器的价格。

只需使用 Windows API 读取/写入 LPT 或 COM 端口,它就可以工作(缓慢)。

于 2010-07-05T23:37:07.613 回答
0

我以前使用过 USB 转串口适配器,我猜 USB 转并口应该是一样的。您应该有一个驱动程序和适配器 - 这为您完成了大部分工作,隐藏 USB 接口并将其作为传统并行端口呈现给操作系统。例如,当我将适配器插入 USB 端口时,它只会在设备管理器中显示为 COM4。我猜你的会显示为 LPT1 或其他东西。从那时起,就可以使用标准的 Windows API 来访问这些端口了。(请参阅MSDN 上的通信资源)

于 2010-07-05T23:32:47.343 回答
0

神奇的是,我用在 ebay.com 上购买的 USB 转 LPT-DB25 线成功了。

我们应该在 /LF Line Feed 和 GND 引脚之间连接一个 LED。

在丢弃 USB 寄存器以找到与 USB 电缆关联的寄存器后,我们应该构建一个 API(应用程序编程接口)来与输出/寄存器交互。

我将尝试附上一张图片来看看我是如何管理它的:

在此处输入图像描述

于 2020-12-20T19:45:55.323 回答