首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows中的串行通信- ClearCommError在读缓冲区中找不到数据

windows中的串行通信- ClearCommError在读缓冲区中找不到数据
EN

Stack Overflow用户
提问于 2013-12-13 07:33:53
回答 2查看 3.9K关注 0票数 2

我想通过串行通信(使用USB到RS232转换器)将数据从笔记本电脑(windows 7,处理器2.60GHz)发送到桌面(windows,处理器3.10GHz)。WriteFile函数能够从膝上型计算机发送数据(NumberOfBytesWritten是正确的)。但是在桌面端,ClearCommError没有检测到读取缓冲区中的数据。

这是我桌面上的相关代码:

代码语言:javascript
复制
while(1)
{
    ClearCommError(hPort,&dwErrors,&commStatus);
    if (commStatus.cbInQue != 0)
        ReadFile(hPort,&data,1,&dwBytesRead,NULL);
}

如果条件永远满足不了。DCB结构中的波特率和其它参数在双方都是相同的。

当我在同一个系统中通过短路RS232连接器中的RX和TX引脚时,相同的代码可以工作。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-17 11:24:28

抱歉,伙计们,代码没有问题。我的RX和TX针被交换了。

票数 1
EN

Stack Overflow用户

发布于 2013-12-13 08:36:47

您可以尝试重新处理这个循环:

代码语言:javascript
复制
while (1) 
{ 
    ClearCommError(hPort,&dwErrors,&commStatus); 
    if (commStatus.cbInQue != 0) break; 
    Sleep(10); 
} 
ReadFile(hPort,&data,1,&dwBytesRead,NULL);

睡眠会给系统一些时间来响应更多的数据--你可能旋转得太快了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20561328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档