首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2013-11-20 
VC下用C语言控制串口接收数据操作系统:winxp_sp3编译工具:VC++6.0用命令行,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比较好,发了数据之后就等待接收。
否则就使用控件,当收到数据时,触发系统的中断事件,控件已经分装好了,在对应位置填代码就行。
串口有自己的缓冲,不会出现你所说的错过数据的现象。

热点排行