关于串口通讯的问题.
adsi 2000-06-20 05:00:00 最近我用VC6编了一个串口通信程序,在windows98下采用57600速率(硬件流控)与一外部模块通信,通信中发现串口有时会丢数据.开始以为是外部模块没给数据,遂并接
RXD和GND至另一台PC的串口,用PComm Lite 2.2软件抓串口数据.结果发现当我这里丢数据时,另一台PC的PComm Lite 2.2抓的串口数据是好的,这说明外部模块是无辜的.不服,我将从Readfile函数中得到的值立刻save为文件,同时将本机的两个串口都利用上(一个正常通信,另一个用PComm Lite 2.2抓数据),结果发现当丢数据时,用PComm Lite 2.2抓的数据也丢了,而且都在相同的点上丢.这使我不得不考虑windows是否有Bug.我将串口的错误信息存了下来,发现在丢数据前总有一个CE_OVERRUN的error,表明windows没来得及读16550芯片的接收FIFO导致数据丢失,而此时windows的接收buffer还有很大余量.
请问windows98/95的串口驱动是怎样实现的(中断or查询)?
有没有方法避免我所遇到的问题?
感谢任何建议.