当前位置:
工控论坛
> >
产品
>
嵌入式系统
我要发帖
向大家请教并口编程的问题!
点击:
1220
| 回复:
3
wince初学者
关注
私信
精华:0帖
求助:0帖
帖子:2帖 | 4回
年度积分:0
历史总积分:10
注册:2005年8月17日
发表于:2005-11-16 10:33:00
楼主
我用直接对寄存器操作的方法操作并口。使用EPP模式。
采用READ_PORT_UCHAR和WRITE_PORT_UCHAR函数读写并口寄存器。
我的最终目的是,想首先通过程序判断状态位S7的值,当读到S7为1即外设准备好以后,才读写数据寄存
器发送或接收数据。
但是每当我读379H状态寄存器的状态位S7时,读到的S7一直为0,也就表示外设一直都没有准备好接收或
发送数据(外设采用WINCE5.0操作系统,也采用EPP并口模式)。可是我试着直接读写37CH数据寄存器,
数据却是可以传送到外设的,这与前面判断外设没有准备好的结论是矛盾的,而且这样就不能用判断状态
位的方法控制读写操作了。如何解决这个问题呢?请大家帮忙想想办法,小弟将不胜感激!
分享到:
收藏
邀请回答
回复楼主
举报
亦云人云
关注
私信
精华:5帖
求助:0帖
帖子:102帖 | 2351回
年度积分:0
历史总积分:3114
注册:2004年11月10日
发表于:2005-11-16 11:20:00
1楼
是否是这样的;
379H状态寄存器的状态位S7,仅仅只读状态位S7,它并不干预读写数据寄存器;
379H状态寄存器的状态位S7,是靠外设的输出位来改变的,当外设准备好时,通过状态位S7告诉调用的主程序,才允许主程序进行I/O操作,当外设断开或未准备好时,状态位S7也必定是未准备好,这时主机不是不能发数据,而是发出数据外设也并未在接收,因此在你的主程序中一般先查状态位S7,若未准备好则等待,若准备好则开始发一个字节。
回复
引用
举报
wince初学者
关注
私信
精华:0帖
求助:0帖
帖子:2帖 | 4回
年度积分:0
历史总积分:10
注册:2005年8月17日
发表于:2005-11-16 18:43:00
2楼
大体上是这样的,只有S7为1,才表示外设已准备好,主程序可以发送数据了。如果S7为0,则表示外设还没有做好接收或发送数据的准备,主程序这时需等待S7变为1才可以发数据。
有好的建议吗?关于解决我上面提到的问题?
回复
引用
举报
亦云人云
关注
私信
精华:5帖
求助:0帖
帖子:102帖 | 2351回
年度积分:0
历史总积分:3114
注册:2004年11月10日
发表于:2005-11-16 18:52:00
3楼
上面的用法是查询方式,没用到中断;是否还可以考虑用中断方式.
回复
引用
举报
热门招聘
相关主题
昆仑通态,用u盘备份下来的程...
[19034]
路灯远程控制系统
[1637]
ColdFire 5213的doggle小板做...
[974]
环境自动化监控系统应用(MCG...
[3280]
电子设计技术的杂志免费申请...
[1023]
山东莒县自来水水厂及供水管...
[2289]
DOM电子硬盘在网络计算机中的...
[989]
TCL- split命令
[3206]
基于三星ARM系列功能强劲的两...
[1052]
ARM9方案讨论!!!!
[1041]
官方公众号
智造工程师
客服
小程序
公众号