串口死机现象

sallan 2010-07-16 03:17:02
大家好,做了一个窗口程序
大概情况如下:
上位机每隔10秒向下位机发送数据
然后下位机将数据返回
下位机在收到上位机的信息后,每隔5秒向
上位机发送数据。
由于双方用的都是计时器,所以可以一直这样持续下去
但是现在产生一个问题,大概30分钟左右,上位机就不能收到
下位机的任何信息,请问这是什么原因阿,如果把串口拔掉,然后
在插上,就可以了。请问这该如何解决阿?

很急,望得到帮助!
...全文
366 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
sallan 2010-07-17
  • 打赏
  • 举报
回复
问题还是没能解决,很急
急盼高手出现
sallan 2010-07-16
  • 打赏
  • 举报
回复
你后说的这三个函数我都有,
我是直接用了串口调试助手的源代码
用了30分钟发现这个问题,
不知道如何处理
感谢你的帮助,谢谢。
adamwyb 2010-07-16
  • 打赏
  • 举报
回复
还有SetCommState
adamwyb 2010-07-16
  • 打赏
  • 举报
回复
有可能,初始化的时候这个一般都是要做的。还有:
SetCommMask
SetCommTimeouts
sallan 2010-07-16
  • 打赏
  • 举报
回复
我调用了ClearCommError,我的串口是异步的
我刚才发现了一个问题,我没有使用SetupComm设置缓冲区
能是这个问题吗?
adamwyb 2010-07-16
  • 打赏
  • 举报
回复
还有你的串口是用同步还是异步的?同步会卡住
adamwyb 2010-07-16
  • 打赏
  • 举报
回复
上位机的COM程序,调用ClearCommError了吗?
sallan 2010-07-16
  • 打赏
  • 举报
回复
感谢adamwyb的回复,如果遇到这种问题,应该如何处理阿
我怎么判断串口缓冲区是否已满。
如果可以,请尽快回复,谢谢。
adamwyb 2010-07-16
  • 打赏
  • 举报
回复
下位机是单线程运行的吗?
如果串口拔了再插就好用,可能是上位机没有及时把串口的数据拿走,造成串口缓冲区满了,出现溢出。
sallan 2010-07-16
  • 打赏
  • 举报
回复
谢谢anthony634的回复,
如果上位机发送数据的同时,下位机也在发送数据
会不会都把信息放到串口中了。如果是这样会有什么
情况出现。
可是我们的程序还在正常通信,我发送的信息下位机可以收到
而下位机发送的信息上位机却收不到,什么原因阿?
小风哥哥 2010-07-16
  • 打赏
  • 举报
回复
上位机放数据的同时,下位机也在发的话,会不会造成下位机挂住?

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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