首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb.net 串口通信,自定协议握手过程,该如何处理

2012-03-24 
vb.net 串口通信,自定协议握手过程做了一个LED显示屏的显示内容更新工具,使用串口通信,自定的通信协议,中

vb.net 串口通信,自定协议握手过程

做了一个LED显示屏的显示内容更新工具,使用串口通信,自定的通信协议,中间有个握手的过程,

我的解决思想是:上位机程序(计算机端,vb2005编写)建立一个线程,这个线程以10ms 为周期,向串口发送&hff,

单片机开机后侦听串口,如果收到&HFF这个值,就返回&HFF,上位机程序收到&HFF后退出循环并 使Connect 值为 ture

Public Class HandShake
  Public Connect As Boolean = False
  Public Sub HandShake()
  FormMain.SerialPort1.Open()
  Dim writedata() As Byte = {&HFF}
  Do
  FormMain.SerialPort1.Write(writedata, 0, 1)
  System.Threading.Thread.Sleep(10)
  Loop While FormMain.SerialPort1.ReadByte <> &HFF
  Connect = True
  FormMain.SerialPort1.Close()
  End Sub
End Class

在formmain class中的声明
  Dim DevHandShake As New HandShake
  Dim thread1 As Thread

在send按钮click事件中
  Timer1.Enabled = True '开定时器1
  thread1 = New Thread(AddressOf DevHandShake.HandShake) '实例化
  thread1.Start() '启动

在实际使用中并不能实现这个功能,请各位高手多多指教,有更好的解决方法还望不吝赐教!!


[解决办法]
有必要用多线程吗?
System.Threading.Thread.Sleep(10) 
sleep表示停止10秒,即10s内什么都不做,单片机回的码能收到吗?
[解决办法]
毫秒
[解决办法]
没遇到过这种情况.

热点排行