我进入新项目,应该使用微控制器。最简单的编程方法是使用并行端口。但是,有几件事我希望你能帮助我。哦,首选语言是 C 和平台 Windows。
所以,我对 LPT 端口和 Windows 进行了一些研究,从中学到的最重要的一点是:由于基于 Windows NT 的系统,您不能使用指令来直接操作端口。应该是这样,因为现在程序运行在不同的特权模式下,不支持outport()
函数使用的那种指令。
但在这一点上,我不明白一些事情。首先,我认为 Windows 自第一个保护模式版本以来实际上使用了特权级别,但这是错误的假设。
但更重要的是,我认为 Windows 包含了几乎所有硬件通信的功能。我的意思是,这些天你在 Windows 中所做的任何事情,你只需要调用进一步调用内核服务的 Windows 函数。我假设它outport()
不使用任何 Windows 功能,只是进行通信本身,现在是禁止的。但令我震惊的是,在现代 Windows 系统中没有控制并行端口的系统功能。至少我是这么读的。
但是即使我可以控制并口,我的第二个问题也随之而来。为了对控制器进行编程,我需要遵循特殊的协议,尤其是时序。但由于 Windows 是多任务的,我担心如果调度程序切换到另一个应用程序会怎样,因此何时是在 LPT 上切换信号的正确时间,我的程序将无法运行。
哦,顺便说一句,我知道我可以使用任何 3rd-party 应用程序,但我只是希望自己能够做到,或者至少在我使用一些 3rd-party 应用程序之前,我想知道它是如何工作的。是的,你可以通过带有一些电阻的并行端口对一些微控制器进行编程,我肯定知道这一点。
谢谢。