我采用VC6的MSComm进行串口的通讯(PC机串口连接到一个测试机台),为了实现测试自动化,没有采用UI等与用户交互,改用参数传递数据方式. MSComm采用的是异步通讯机制,假如函数 RS232Send(CString Data)负责向串口发送数据,在OnOnCommMSComm()事件中包含了将接收到的数据存放到一个CString变量中Transmit Data: <12> ---- 调用RS232Send发送Ctrl-R,<>方括号代表16进制数据
Transmit Data: <19> ---- 调用RS232Send发送Ctrl-Y,,<>方括号代表16进制数据
Transmit Data: R 101<0D> ---- 调用RS232Send发送"R 101"
Transmit Data: W 123 B0<0D> ---- 调用RS232Send发送"R 101"由于是异步通讯,不会一问一答的方式,所以得到了如下串口回馈的全部信息
Response Data: 
//发送<12>得到的数据
Port R  
ADR  +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
100  52 00 09 31 05 18 10 06 0C 00 00 1B BA 02 00 CF
110  00 77 1E 06 00 86 00 00 FF C3 FF C3 00 00 00 00
120  00 00 38 30 00 00 80 77 FF 0F FF 00 00 08 00 A4
130  00 03 02 00 00 00 00 00 00 00 00 00 00 00 00 00
140  00 00 00 00 00 00 00 65 00 25 00 00 00 00 00 00
150 
//发送<19>得到的数据
Port Y
//发送R 101<0D>得到的数据
R 101
 00
//发送W 123 B0<0D>得到的数据
W 123 B0
OK现在的问题是我该如何得到每次发送数据后该返回的数据来进行处理分析,而不是全部数据. 我的程序会都次发送串口命令,然后要根据每次的反馈信息进行处理(交由 数据处理模块函数 ),但串口总是返回给我全部一次性的数据,这并不是我想要的. 望高手赐教