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内什么都不做,单片机回的码能收到吗?
[解决办法]
毫秒
[解决办法]
没遇到过这种情况.