首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows上的LPT控件

Windows上的LPT控件
EN

Stack Overflow用户
提问于 2010-05-27 05:43:46
回答 1查看 723关注 0票数 1

我正在从事新的项目,应该使用微控制器。最简单的编程方法是使用并行端口。但是,有几件事我希望你能帮助我。哦,而且首选的语言是C和Windows平台。

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

但在这一点上,我不明白一些事情。首先,我认为Windows实际上从第一个保护模式版本开始就使用了特权级别,但这是错误的假设。

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

但是,即使我可以控制并行端口,我的第二个问题也来了。对于控制器的编程,我需要遵循特殊的协议,特别是时序。但由于Windows是多任务的,我担心如果Scheduler切换到另一个应用程序会怎么样,因此什么时候是在LPT上切换信号的合适时间,我的程序将无法运行。

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

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-27 06:30:50

对于windows,您需要安装包含驱动程序的DLL,以便以提升的权限运行以访问硬件端口。

您可以在以下位置找到这样的库:

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

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

我不知道你使用的是哪种uController,但我在过去编程过很多种,从来没有遇到过计时问题,至少对于编程来说是这样的。编程协议通常足够健壮,可以处理由多任务处理引起的抖动。只要让你的时钟边缘和信号边缘很好地分开,它就会变得很好。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2917039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档