c语言 接收 控制

场景:VC停用C语言控制串口接收数据

VC下用C语言控制串口接收数据
操作系统:winxp_sp3  编译工具:VC++6.0  用命令行,C语言

各位大师:

小生在上面的环境下,写串口通信调试程序。PC与下位机的通信协议是:下位机先发一个同步字节0xaa,PC收到之后返回0xab,完成握手协议。

1. 我想PC应该不会一直操作串口接收数据并轮询串口接收的buffer,查看是否有数据收到,不知有没有中断一类的东西,来通知PC何时收到数据?

2. 如果没有中断,那么应该怎么操作串口,才能达到最及时的接收到数据?最好占用的PC资源最少。

恳请各位不吝赐教,多谢!
PC 串口 ,数据接收

------解决方案--------------------
串口的操作和socket操作是差不多的,看你用什么方式打开串口了。用writefile方式打开的话,可以一直读,线程循环去读就可以了
------解决方案--------------------
PC会一直操作串口接收数据并轮询串口接收的buffer,查看是否有数据收到
------解决方案--------------------
不会错过的,下位机发送东西上来的时候是在你的缓冲区里,你不读的话他不会消失,你在while循环里检测是可以检测到的
------解决方案--------------------
只能遍历查询, 没有数据则sleep一会, 一般Sleep(10). 
串口本身就是低速设备
------解决方案--------------------
引用:
Quote: 引用:

串口的操作和socket操作是差不多的,看你用什么方式打开串口了。用writefile方式打开的话,可以一直读,线程循环去读就可以了


您好,我就是打算用ReadFile这种方式打开(因为我刚开始接触,只知道这一种方法),如果我这么一直循环读下去的话,能否出现读取返回值和判断的时候,错过了下位机发给串口的数据这种现象?
谢谢您!

windows串口一般有两种方式,windows API 或者使用控件。
如果是那种主从模式,使用windows API比较好,发了数据之后就等待接收。
否则就使用控件,当收到数据时,触发系统的中断事件,控件已经分装好了,在对应位置填代码就行。
串口有自己的缓冲,不会出现你所说的错过数据的现象。