Windows上的LPT控件

时间:2010-05-26 21:43:46

标签: windows microcontroller lpt

我正在进入新项目,应该使用微控制器。编程它的最简单方法是使用并行端口。但是,我希望你能帮助我的事情很少。哦,首选语言是C和平台Windows。

所以,我研究了LPT端口和Windows,从我学到的最重要的是:从基于Windows NT的系统,你不能使用指令进行直接端口操作。这应该是,因为现在程序以不同的权限模式运行,这不支持outport()函数使用的指令类型。

但在这一点上,我不了解一些事情。首先,我认为Windows实际上使用了自第一个保护模式版本以来的权限级别,但这是错误的假设。

但更重要的是,我认为Windows已经包含几乎任何硬件通信的功能。我的意思是,这些天你在Windows中做的任何事情,你只需要调用windows函数,进一步调用内核服务。我假设outport()没有使用任何Windows功能,只是进行通信本身,这是现在禁止的。但我真的很震惊,现代Windows系统中没有控制并行端口的系统功能。至少这是我读到的。

但即使我能控制并行端口,也出现了第二个问题。 为了对控制器进行编程,我需要遵循特殊协议,尤其是时序。但是由于Windows是多任务的,我担心如果调度程序切换到另一个应用程序,因此何时是在LPT上切换信号的正确时间,我的程序将无法运行。

哦,顺便说一下,我知道我可以使用任何第三方应用程序,但我只是想自己做,或者至少在我使用第三方应用程序之前,我想知道它是怎么回事作品。是的,你可以通过并行端口用一些电阻对一些微控制器进行编程,我肯定知道这一点。

感谢。

1 个答案:

答案 0 :(得分:3)

对于Windows,您需要安装一个DLL,其中包含一个以提升权限运行的驱动程序,以便访问HW端口。

您可以在以下网址找到这样的图书馆:

http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

还有一些示例代码的链接。

我不知道你正在使用哪种uController,但我过去编程了各种各样的ucontroller,并且从未遇到时间问题,至少对编程很有帮助。编程协议通常足够强大,可以处理多任务处理引起的抖动。只要保持你的时钟边缘和信号边缘分开,就可以了。