紧急求救!!Windows 98下端口I/O出怪事!
各位高手:
我正在编写一个数据采集程序(使用Visual C++6.0编程与数据采集卡进行端口通信),其通讯方式很简单:
先向310端口发初始化信号,通知仪器开始数据通讯,然后循环检测300端口,数据有效后读一个字节,然后再循环检测300端口,数据有效后再读下一个字节...,如此反复。
我使用的是VC的_inp()、_outp()函数来操作的,刚开始实验读少量数据是成功的,因为这是一种很可靠的通讯方式,所以我认为肯定没问题了!可是后来再实验接收大量数据时,问题出现了:每接收一段数据(大约一百多个字节),仪器就会莫名其妙的被重新初始化,又从头开始发送数据。
我以为是VC的_inp()、_outp()函数不好,就编了一个简单的动态加载Vxd进行I/O操作,以为这样不会再有问题了,可结果恰恰相反!
没办法了,只好又用Turbo C编了一个DOS程序,想在VC程序中需要通讯时调用一下,更奇怪的现象出现了:在纯DOS中,通讯一切正常,仪器没有被莫名其妙的重新初始化;可在Windows的DOS窗口中,却又出现了跟上面一样的问题!
这是为什么?还望各位高手指教!感激不尽!
张小峰
skyvense@online.sh.cn