我有一个USB转并口设备,我希望在现代的Windows操作系统(xp和更新版本)上通过c ++进行交互。
我做了一些研究,但是当涉及到这些USB到并行端口设备之一的编程时,信息有点不完整(大部分信息都是过时的,并假设你有一个内置的并行端口主板,我的全新电脑没有的东西)。一个参考文献甚至说,如果没有某种软件更改,就无法从C ++程序与USB接口并行端口。
我想做的就是能够在运行现代Windows操作系统的现代计算机上通过USB转并口设备读取或写入8位到并行端口(端口专用于读取或写入)
有没有快速简便的方法呢?我们非常感谢一些示例代码。
此外,我可以与计算机连接多少个USB并行端口?我是否因为某种传统寻址而限制为3,或者我的USB和CPU能够支持多少?
使用Core i7 860运行Windows 7 x64,使用VC ++ 2008。
编辑:更多信息......
我尝试过使用inpout23以及一些预先编写的测试程序。它编译得很好,运行得很好,声称同时读取和写入并行端口。我把我的USB连接到计算机的并行端口和连接到电缆的端口,我已经识别,剥离并焊接了25根电线中的每根电线到一种插头上,以便快速插入面包板进行测试。没有任何输出引脚改变为程序所说的内容(而是它们都设置为高并且从未改变)。
答案 0 :(得分:3)
我过去做过这个,我有好消息和坏消息。
好消息是它始终有效(有时会调整),这是对电子制造商设计极其强大的协议的致敬。显然,USB转并口转换器都提供了硬件端口仿真。
坏消息是'bitbanging'接口模型的性能非常糟糕。如果你不介意慢速更新,这根本不是问题。我用它来编程uControllers,不久我的急躁就克服了串口或USB程序员的价格。
只需使用Windows API读取/写入LPT或COM端口,它就可以(慢慢地)工作。
答案 1 :(得分:0)
之前我使用的是USB转串口适配器,我想USB转并行应该是一样的。您应该有一个驱动程序和适配器 - 这将为您完成大部分工作,隐藏USB接口并将其作为传统并行端口呈现给操作系统。例如,当我将适配器插入USB端口时,它只是在设备管理器中显示为COM4。我猜你的将会出现在LPT1之类的东西上。从那以后,这是使用标准Windows API访问这些端口的问题。 (请参阅MSDN上的Communications Resources)
答案 2 :(得分:0)