2011年11月9日 星期三

VB RS232接收資料實作


 引用:
--
1.表單中加入 MSComm
2.Form_Load中加入下列程式碼
Private Sub Form_Load()
 '設定comport的位置
 MSComm1.CommPort = 1

 '檢查一下Com1是否被使用了,若被使用了,把Com1關閉並重設.
 If (MSComm1.PortOpen) Then MSComm1.PortOpen = False

 '設定comport的讀取速率,注意RS232傳送速率,有的是9600,有的是1200,看你的Device而定
 MSComm1.Settings = "9600,N,8,1"

 '設定DTR線路為高電位
 MSComm1.DTREnable = True

 '設定讀取的長度
 MSComm1.InputLen = 33

 '當緩衝區有33bytes則觸發事件
 MSComm1.RThreshold = 33

 '交握模式設定
 MSComm1.Handshaking = MSCOMMLIB.HandshakeConstants.comXOnXoff

 '資料格式,走33byte,text模式
 MSComm1.InputMode = MSCOMMLIB.InputModeConstants.comInputModeText

 'null一樣照收
 MSComm1.NullDiscard = False



 '打開comport 1
 MSComm1.PortOpen = True

 Timer1.Enabled = True

 MSComm1.RTSEnable = True
End Sub
3.加入MSComm1_OnComm 接收事件
Private Sub MSComm1_OnComm()
Dim TempStr as String
If MSComm1.InBufferCount = 33 Then
TempStr = MSComm1.Input
debug.print "接收資料為:" & TempStr
'這裡就寫你要的邏輯,看怎麼處理資料嚕
end if
End Sub

沒有留言:

張貼留言