一個簡單接收的程序
Dim inputstr As String
Private Sub Command1_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub Command2_Click()
List1.Clear
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
With MSComm1
.CommPort = 1 ’使用COM2
.Settings = "9600,N,8,1" ’設(shè)置通信口參數(shù)
.InBufferSize = 40
’設(shè)置MSComm1接收緩沖區(qū)為40字節(jié)
.OutBufferSize = 2
’設(shè)置MSComm1發(fā)送緩沖區(qū)為2字節(jié)
’.InputMode = comInputModeBinary
’設(shè)置接收數(shù)據(jù)模式為二進(jìn)制形式
.InputLen = 1
’設(shè)置Input 一次從接收緩沖讀取字節(jié)數(shù)為1
.SThreshold = 1
’設(shè)置Output 一次從發(fā)送緩沖讀取字節(jié)數(shù)為1
InBufferCount = 0 ’清除接收緩沖區(qū)
.OutBufferCount = 0 ’清除發(fā)送緩沖區(qū)
.RThreshold = 1
’設(shè)置接收一個字節(jié)產(chǎn)生OnComm事件
If .PortOpen = False Then
’判斷通信口是否打開
.PortOpen = True ’打開通信口
If Err Then ’錯誤處理
MsgBox "串口通信無效"
Exit Sub
End If
End If
End With
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
av = MSComm1.Input
Text2.Text = Text2.Text & " " & Asc(av)
’Timer1.Enabled = True
If av >= 0 And av <= 9 Then
inputstr = inputstr & av
Else
Text3.Text = Text3.Text & inputstr & "*"
Text1.Text = Asc(av)
If Len(inputstr) <> 14 Then
response = MsgBox("條碼格式不正確,取消格式限制請按“是”,否則按“否”,退出程序按“取消”數(shù)據(jù)長度=" & Len(inputstr) & " " & inputstr, vbYesNoCancel, "條碼格式")
List1.AddItem (inputstr)
inputstr = ""
MSComm1.InBufferCount = 0
Else
List1.AddItem (inputstr)
inputstr = ""
MSComm1.InBufferCount = 0
End If
End If
End Select
End Sub
Private Sub Timer1_Timer()
Dim inputstr
Timer1.Enabled = False
inputstr = MSComm1.Input
List1.AddItem (inputstr)
End Sub
Dim inputstr As String
Private Sub Command1_Click()
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
End Sub
Private Sub Command2_Click()
List1.Clear
End Sub
Private Sub Form_Load()
Timer1.Enabled = False
With MSComm1
.CommPort = 1 ’使用COM2
.Settings = "9600,N,8,1" ’設(shè)置通信口參數(shù)
.InBufferSize = 40
’設(shè)置MSComm1接收緩沖區(qū)為40字節(jié)
.OutBufferSize = 2
’設(shè)置MSComm1發(fā)送緩沖區(qū)為2字節(jié)
’.InputMode = comInputModeBinary
’設(shè)置接收數(shù)據(jù)模式為二進(jìn)制形式
.InputLen = 1
’設(shè)置Input 一次從接收緩沖讀取字節(jié)數(shù)為1
.SThreshold = 1
’設(shè)置Output 一次從發(fā)送緩沖讀取字節(jié)數(shù)為1
InBufferCount = 0 ’清除接收緩沖區(qū)
.OutBufferCount = 0 ’清除發(fā)送緩沖區(qū)
.RThreshold = 1
’設(shè)置接收一個字節(jié)產(chǎn)生OnComm事件
If .PortOpen = False Then
’判斷通信口是否打開
.PortOpen = True ’打開通信口
If Err Then ’錯誤處理
MsgBox "串口通信無效"
Exit Sub
End If
End If
End With
End Sub
Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent
Case comEvReceive
av = MSComm1.Input
Text2.Text = Text2.Text & " " & Asc(av)
’Timer1.Enabled = True
If av >= 0 And av <= 9 Then
inputstr = inputstr & av
Else
Text3.Text = Text3.Text & inputstr & "*"
Text1.Text = Asc(av)
If Len(inputstr) <> 14 Then
response = MsgBox("條碼格式不正確,取消格式限制請按“是”,否則按“否”,退出程序按“取消”數(shù)據(jù)長度=" & Len(inputstr) & " " & inputstr, vbYesNoCancel, "條碼格式")
List1.AddItem (inputstr)
inputstr = ""
MSComm1.InBufferCount = 0
Else
List1.AddItem (inputstr)
inputstr = ""
MSComm1.InBufferCount = 0
End If
End If
End Select
End Sub
Private Sub Timer1_Timer()
Dim inputstr
Timer1.Enabled = False
inputstr = MSComm1.Input
List1.AddItem (inputstr)
End Sub