我想用计算机的并口EPP模式进行通信,输出数据到并口,以及从并口读入数据。做过很多次尝试,找了很多资料以及别人的方案,但是没怎么成功。我用的是别人的一个I/O库,可以直接对端口out/In.
每次实验都能输出数据到短口-因为我用并口能驱动步进电机,同样用万用表可以检测到电平的变化。但是读入数据都不能成功,无论是SPP/Epp还是ECP模式。先进入读短口状态,然后读入前一次写到短口的的数据,但是每一次读入数据都是全1,我把短口的数据线用物理的方法接地(低电平 0 ),但是读入的数据依然为全 1。
我的主板支持SPP/ECP/EPP模式,为捷波 845D主板
每次实验都能输出数据到短口-因为我用并口能驱动步进电机,同样用万用表可以检测到电平的变化。但是读入数据都不能成功,无论是SPP/Epp还是ECP模式。先进入读短口状态,然后读入前一次写到短口的的数据,但是每一次读入数据都是全1,我把短口的数据线用物理的方法接地(低电平 0 ),但是读入的数据依然为全 1。
我的主板支持SPP/ECP/EPP模式,为捷波 845D主板
上面有关于直接访问并行口控制器的C语言程序。
主要是控制寄存器的位5要设置正确
默认下只能输出数据,不能读入
Base + 2 Control Port Read/Write
Bit 7 Unused
Bit 6 Unused
Bit 5 Enable Bi-Directional Port //就是这个,设置成0好像是输出,1的话为输入
Bit 4 Enable IRQ Via Ack Line
Bit 3 Select Printer
Bit 2 Initialize Printer (Reset)
Bit 1 Auto Linefeed
Bit 0 Strobe
base=0x378 或者0x278
具体参看SPP说明书
http://www.beyondlogic.org/spp/parallel.htm
这个寄存器使用方法兼容EPP ECP
AthlonxpX86(桃源村):,能给你的源代码看看不?我对控制口5写“1”,再次读控制口,它仍然是0,
这个位是不是自动恢复?那就得严格按照时序?
确实,那个Bit 5 Enable Bi-Directional Port ,是自动恢复的。
[email protected]