回覆列表
-
1 # 盡是他鄉之客548
-
2 # 使用者9405259858110
我現在知道的有兩種做法,給你參考一下
1是一定時間掃描下串列埠看串列埠是否有回傳值即
a=MSComm1.output
delay
b=MSComm1.Input
2.是設定mscomm的ONCOM事件,一旦檢測有資料回傳就進行處理
MSComm1.Settings = "9600,N,8,1" "設定通訊口引數
MSComm1.InputMode = comInputModeText
MSComm1.InBufferCount = 0 "清除接收緩衝區
MSComm1.OutBufferCount = 0 "清除傳送緩衝區
MSComm1.RThreshold = 1 "設定接收一個位元組產生OnComm事件
Private Sub MSComm1_OnComm() "接收資料
Dim strBuff As String
Select Case MSComm1.CommEvent
Case 2
strBuff = strBuff & MSComm1.Input
End Select
End Sub
祝你成功!
這樣的話就不好監聽了,其他程式佔用後用VB開啟會出錯的。。。
書上估計是用的定時器接收,窗體上拖MSComm1,Timer1,Text1控制元件各一個,並在屬性設定好MSComm1的波特率,串列埠號,起始位,停止位等資訊Dim str_dispaly As String "定義回顯字元Private Sub Form_Load() Me.MSComm1.PortOpen = True Me.Timer1.Interval = 100 "定時器時間間隔 Me.Timer1.Enabled = TrueEnd SubPrivate Sub Timer1_Timer() If MSComm1.InBufferCount > 0 Then str_dispaly = str_dispaly & MSComm1.Input Me.Text1.Text = str_display End IfEnd Sub