阅读:3315回复:8
如何让LPT口可以输入数据
我用WINDRIVER做了个并口的读写程序,可以正常写并口,但无法读并口,请指示.
|
|
|
沙发#
发布于:2002-04-30 18:11
要通过并口输入数据,需要并口支持EPP协议(现在的计算机都支持)。在WINDRIVER中,有一控制寄存器,相应位置数后,就可以利用数据线接收数据。具体方案,可参考EPP相关书籍。
|
|
|
板凳#
发布于:2002-04-30 18:42
能再说的详细一些吗?无法读数据的原因很多!
|
|
地板#
发布于:2002-04-30 20:03
要读并口,你首先要在CMOS设置中,将并口设定为EPP模式,然后,在WINDRIVER生成的库函数中有一个读写并口控制寄存器的,利用它将并口设定为输入模式,然后使用读数据口的函数就可以从并口读入数据了。
我现在在家休息,资料全在学校。五一之后再给大家详细做答。 |
|
|
地下室#
发布于:2002-05-01 19:28
谢谢各位了.我查了EPP的传输协议http://www.beyondlogic.org/epp/epp.htm
以找到了原因. 所谓EPP是双向通讯口一点都没错,但是不是我想象的那样简单. 我以前以为,双向通讯就是增加了通过读数据寄存器(0x378或0x37c)可以读PIN的功能.但实际上是需要一些协议的.读入数据之前,要拉低nDATASTORBE,或nADDRESSSTORBE在此线的上升沿将PIN上的数据读入0x37c,然后等待WAIT变低,结束一个BYTE. 这样就有一个问题:当我要用LPT口在EPP方式下控制一个没有CPU的设备(如EEPROM)就不能在读完数据后得到设备的WAIT信号,从而无法完成一帧数据的通讯.当然,可以将nDATASTORBE或nADDRESSSTORBE延时反相给WAIT端.各位大侠,有更好的方法吗? |
|
|
5楼#
发布于:2002-05-01 20:03
哪谁产生WAIT信号呢?
|
|
6楼#
发布于:2002-05-03 21:34
|
|
|
7楼#
发布于:2002-05-03 22:02
楼上的兄弟,WAIT信号必须由收端给出,这就是不方便的地方,也是我的问题.
|
|
|
8楼#
发布于:2002-05-04 11:12
《电子技术应用》2001年第12期之48页有本人的文章,其中有简单地解决这个问题的方法,并已经实际应用,请查阅。
|
|
|