串口通信未收到数据的处理方法

zhxingway1 2010-01-13 09:04:12
你好,感谢你阅读此帖.


我在VS2005中用串口控件SerialPort的时候,接收数据用DataReveived事件,

用户在打开错误的串口的时候,是没有数据可以接收的,这样就不会触发触发DataReveived事件

那么我应该怎么做才能在接收不到数据的时候给出一个提示给用户呢?

另外就是怎样在接收数据超时的时候也给出一个提示给用户呢?

我搜索了好久都没有找到答案,

期待你的解答.谢谢.


祝你工作顺利,身体健康!
...全文
468 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
x2635340408 2011-10-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhxingway1 的回复:]
我是在DataReveived事件中放一个Byte数组,

但是如果没有数据的话,我的DataReveived事件都不会触发啊.那我就判断不了了,,其实我已经把问题解决了,

思路就是DataReveived事件放一个Bool变量

然后用一个定时器在一定时间后根据这个变量来判断有没有接收到数据

明天把代码发出来
[/Quote]代码呢
Lee 2010-01-14
  • 打赏
  • 举报
回复
已经 明白了
Lee 2010-01-14
  • 打赏
  • 举报
回复
多谢 zhxingway1
zhxingway1 2010-01-14
  • 打赏
  • 举报
回复
关键字:串口通信,超时,SerialPort,串口,
zhxingway1 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 leek 的回复:]
SerialPort的 接收数据用DataReveived事件 处理过程,如果把读取的数据返回到窗体的文本框 就出现错误提示 :不是这个窗体创建的线程。 但是 使用messagebox 输出数据 没有错误提示 ,
这是怎么回事?改如何解决?
[/Quote]

请参考:(如何:对 Windows 窗体控件进行线程安全调用)
http://msdn.microsoft.com/zh-cn/library/ms171728(VS.80).aspx
zhxingway1 2010-01-14
  • 打赏
  • 举报
回复
问题解决,谢谢大家
Uncle_Yong 2010-01-14
  • 打赏
  • 举报
回复
首先,你得定义你得“未接受到数据”,什么叫“未接受到数据”,是发送数据后一定时间内没有响应就是未接受到数据吗?
如果是这样,加Timer,在发送数据后启动Timer,在DataReveived事件中(接收到数据了)停止Timer;Timer事件中(未接受到数据)给出未接受到数据。
michaelnami 2010-01-14
  • 打赏
  • 举报
回复
用户在打开错误的串口的时候
那你直接提示错误并终止当前接收不就好了
Lee 2010-01-14
  • 打赏
  • 举报
回复
SerialPort的 接收数据用DataReveived事件 处理过程,如果把读取的数据返回到窗体的文本框 就出现错误提示 :不是这个窗体创建的线程。 但是 使用messagebox 输出数据 没有错误提示 ,
这是怎么回事?改如何解决?
wlglala 2010-01-14
  • 打赏
  • 举报
回复
定义定时器,在定时器中检测
freeboy827 2010-01-14
  • 打赏
  • 举报
回复
搞个全局变量,
http://topic.csdn.net/u/20100112/14/d78a7204-cbec-4992-aff4-b9be94ae2433.html
请参考这里我的回复
sito_hongta 2010-01-14
  • 打赏
  • 举报
回复
純支持
zhxingway1 2010-01-13
  • 打赏
  • 举报
回复
我是在DataReveived事件中放一个Byte数组,

但是如果没有数据的话,我的DataReveived事件都不会触发啊.那我就判断不了了,,其实我已经把问题解决了,

思路就是DataReveived事件放一个Bool变量

然后用一个定时器在一定时间后根据这个变量来判断有没有接收到数据

明天把代码发出来
yinrongg 2010-01-13
  • 打赏
  • 举报
回复
用bytes数组接收发来的数据,如果接收缓冲区为空就是代表没 数据啊,这样用label提示无数据。还要怎么提示呢?

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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