我用CSerialPort遇到了问题,请大家帮忙看看!!

唐勉的技术博客 2005-05-17 05:06:29
我在使用CSerialPort类,是从www.naughter.com下载的。用来从串口接收数据。程序大致如下:
while(!off)
{
off=m_SerialPort.BytesWaiting();
Sleep(1);
}

j=m_SerialPort.Read(ptr, off);

m_SerialPort.BytesWaiting()函数用来检查现在串口的接收缓冲区里面是否有数据,如果有数据就跳出循环,执行m_SerialPort.Read(ptr, off)把数据读出来。

我现在遇到的问题是我检查串口的接收缓冲区是有数据的,但是调用m_SerialPort.Read(ptr, off)函数,返回值是0,就是说没有读到数据。

不知道为什么,请大家指教!!
...全文
108 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
lcstudio 2005-05-19
  • 打赏
  • 举报
回复
从你的循环逻辑来看,如果off本来非0那么就不会进入循环体执行。
可能写成:
while(!(off=m_SerialPort.BytesWaiting()))
{
Sleep(1);
}
j=m_SerialPort.Read(ptr, off);
比较好

nuaawenlin 2005-05-19
  • 打赏
  • 举报
回复
每次进入循环得之前要将off置为0

2,644

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 硬件/系统
社区管理员
  • 硬件/系统社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧