各位,有时间就请看一下:1. 我用一个线程监视串口当有数据到达时将其读出,具体方法是:用一个事件作参数调用WaitCommEvent 申请等待EV_RXCHAR,然后用WaitForMultipleObjects等待上述事件,当事件发生时(即有数据到达串口)用ClearCommError来获取缓冲区中数据的个数,假设为n ,在后来用ReadFile读取这 n 个数据。并通知客户(主线程)2. 我将COM1口的2,3脚短接,即发啥收啥。当我向串口写数据“1234567890”时,
我会收到“1234567890”一切正常,但是,这是分两次收到的,即辅助线程向主线程发了两次消息,第一次消息中读的结果是“12345678”,第二次则为“90”,3也就是说WaitCommEvent和WaitForMultipleObjects的联合调用等来了两次串口
EV_RXCHAR事件,问:这正常吗?不是应该只有一次吗(ClearCommError所获取的数据个数应为10)?再,当写"12345678901234567890"则先后收到的是“12345678”,
“09123456”,“7890”,经过总结表明有如下规律:每8个字符来一次EV_RXCHAR事件,不足8个时来一次,再问,有此规律吗?毛病出在哪?                                                 走好!