小弟刚接触串口编程,在用CSerialPort类的时候遇到了麻烦,在解析串口数据的时候为什么一段时间后会卡住?

ChiyOf1990 2013-07-05 03:51:14
小弟刚接触MFC和串口编程,在用CSerialPort类的时候遇到了麻烦,在解析串口数据的时候为什么一段时间后会卡住?即使不解析,仅仅将传过来的字符输出,仍然会卡住?有什么解决办法?
...全文
534 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿先森 2013-11-29
  • 打赏
  • 举报
回复
冰晶之魂 2013-11-29
  • 打赏
  • 举报
回复
表示我之前也遇到这个问题。
冰晶之魂 2013-11-29
  • 打赏
  • 举报
回复
兄弟,你用的系统是win7系统,CSerialPort类是Remon Spekreijse写的吧!如果是那么我可以告诉你原因,造成你的问题是这个串口类在读取串口数据的时候一直阻塞在那里,它没有返回。你可以监视串口,可以看到的。我现在就用Remon Spekreijse写的CSerialPort类。
阿先森 2013-11-14
  • 打赏
  • 举报
回复
这个类不如CxComm类好用。 http://www.cnblogs.com/EdmundDwyane/p/3174308.html
woshi_hujunjun 2013-11-08
  • 打赏
  • 举报
回复
肯定是你逻辑有问题,你可以把整个过程用日志记录下来,看看到底发生了什么情况
hdg3707 2013-07-07
  • 打赏
  • 举报
回复
你先不要干其它的,只管接收并放在缓冲区里,因为你是接到1000多次就有问题,那你就设个5000的字节数组,循环接收并保存在这个数组里,等接收到5000个字节后就退出来(这是为了设断点判断是否正常),如果没问题,就说明你是别的任务影响接收
一条晚起的虫 2013-07-07
  • 打赏
  • 举报
回复
// 在ReadFile之前,可以先PurgeComm,清空接收缓冲区。
ChiyOf1990 2013-07-06
  • 打赏
  • 举报
回复
我是从一个传感器读的数据,这个传感器是不停发数据的,用它自带的软件和串口调试工具都能不断读数据,但我的程序读一会就会卡住。
hdg3707 2013-07-06
  • 打赏
  • 举报
回复
你用串口助手试试,会不会是下位机的问题
ChiyOf1990 2013-07-06
  • 打赏
  • 举报
回复
传感器的波特率是115200,我用的是usb转串口的线,如果是缓冲区溢出或者是间隔小于60毫秒,那该怎么解决呢?
hdg3707 2013-07-06
  • 打赏
  • 举报
回复
下位机传数据的时间间隔是多长,如果不停的上传就有可能是你的程序接收缓冲区溢出或程序反映不过来造成的,下位机不能一个劲的不停的发数据,因为操作系统是多任务操作系统,后台有几百个程序在运行,操作系统不能光执行你的接收程序。 下位机发送数据的间隔最小不能小于60毫秒,否则有可能会丢数据或上位机反映不过来
ChiyOf1990 2013-07-05
  • 打赏
  • 举报
回复
试过了不判断有多少个字符,来一个字节我就输出一次,然后再记一次数,记数到1000多久不动了,这是为什么?这个问题困扰我好久了。
hdg3707 2013-07-05
  • 打赏
  • 举报
回复
这看不出是什么原因造成的,你先改成接收一个字符就输出,不要判断有多少个字符再读,这样有可能因为上位机不发数据造成上位机无限等待

2,640

社区成员

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

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