我想用计算机的并口EPP模式进行通信,输出数据到并口,以及从并口读入数据。做过很多次尝试,找了很多资料以及别人的方案,但是没怎么成功。我用的是别人的一个I/O库,可以直接对端口out/In.
每次实验都能输出数据到短口-因为我用并口能驱动步进电机,同样用万用表可以检测到电平的变化。但是读入数据都不能成功,无论是SPP/Epp还是ECP模式。先进入读短口状态,然后读入前一次写到短口的的数据,但是每一次读入数据都是全1,我把短口的数据线用物理的方法接地(低电平 0 ),但是读入的数据依然为全 1。
  我的主板支持SPP/ECP/EPP模式,为捷波 845D主板

解决方案 »

  1.   

    你可以查看《WINDOWS环境下软硬件接口技术》这本书
    上面有关于直接访问并行口控制器的C语言程序。
      

  2.   

    2年前这个问题也同样困惑着我,不过最后解决了,呵呵
    主要是控制寄存器的位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
      

  3.   

    re: wyu53(中心月):0x 0378分别 +1为状态口,+2为控制口。+4 - +7为EPP用。 0x0278,0x03BC;作为基地址也可以。主板要摄制。
      

  4.   

    dong2026(东东) ,这个怎么控制得好时序呢?有源代码看看不?[email protected].
     AthlonxpX86(桃源村):,能给你的源代码看看不?我对控制口5写“1”,再次读控制口,它仍然是0,
    这个位是不是自动恢复?那就得严格按照时序?
      

  5.   

    成功了,谢谢各位,谁有这个困难,我给程序。
    确实,那个Bit 5 Enable Bi-Directional Port ,是自动恢复的。
      

  6.   

    zsyddl1(天涯同鸣鸟),我目前也正在做这个东东,能把程序发给我参考一下吗?
    [email protected]