我用直接对寄存器操作的方法操作并口。使用EPP模式。
WWW.PLCJS.COM——可编程控制器技术门户
采用READ_PORT_UCHAR和WRITE_PORT_UCHAR函数读写并口寄存器。——可——编——程——控-制-器-技——术——门——户
我的最终目的是,想首先通过程序判断状态位S7的值,当读到S7为1即外设准备好以后,才读写数据寄存WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
WW.W_PLC※JS_C,OM-PL,C-技.术_网
器发送或接收数据。——可——编——程——控-制-器-技——术——门——户
但是每当我读379H状态寄存器的状态位S7时,读到的S7一直为0,也就表示外设一直都没有准备好接收或WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW.PLCJS.COM——可编程控制器技术门户
发送数据(外设采用WINCE5.0操作系统,也采用EPP并口模式)。可是我试着直接读写37CH数据寄存器,WWW_PL※CJS_COM-PLC-技.术_网
plcjs.技.术_网
数据却是可以传送到外设的,这与前面判断外设没有准备好的结论是矛盾的,而且这样就不能用判断状态plcjs.技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
位的方法控制读写操作了。如何解决这个问题呢?请大家帮忙想想办法,小弟将不胜感激!WWW_PLCJS@_COM%-PLC-技.术_网
以下是对《向大家请教并口编程的问题!》的回复:
plcjs.技.术_网
匿名回复:
WWW_PLCJS@_COM%-PLC-技.术_网
是否是这样的;WWW_PLCJS_COM-PLC-技.术_网
379H状态寄存器的状态位S7,仅仅只读状态位S7,它并不干预读写数据寄存器;P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
379H状态寄存器的状态位S7,是靠外设的输出位来改变的,当外设准备好时,通过状态位S7告诉调用的主程序,才允许主程序进行I/O操作,当外设断开或未准备好时,状态位S7也必定是未准备好,这时主机不是不能发数据,而是发出数据外设也并未在接收,因此在你的主程序中一般先查状态位S7,若未准备好则等待,若准备好则开始发一个字节。 WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
匿名回复:P.L.C.技.术.网——可编程控制器技术门户
大体上是这样的,只有S7为1,才表示外设已准备好,主程序可以发送数据了。如果S7为0,则表示外设还没有做好接收或发送数据的准备,主程序这时需等待S7变为1才可以发数据。WWW_PLCJS_COM-PLC-技.术_网
有好的建议吗?关于解决我上面提到的问题? WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
匿名回复:WWW_PLC※JS_COM-PmLC-技.术_网
上面的用法是查询方式,没用到中断;是否还可以考虑用中断方式. plcjs.技.术_网