Private Sub Timer1_Timer()
If MSComm1.PortOpen = False Then MSComm1.PortOpen = True
buffer$ = buffer$ & MSComm1.Input
If buffer$ <> "" Then MsgBox buffer$
End Sub
Sub MSCommInit() '串口初始化
MSCommKQ.CommPort = 1
MSCommKQ.Settings = "9600,n,8,1"
MSCommKQ.RThreshold = 12
MSCommKQ.PortOpen = True
End Sub
Private Sub MSCommKQ_OnComm()
'串口通讯事件
Dim rxd As Variant
Dim sRxdData, sChk As String
Select Case MSCommKQ.CommEvent
Case comEvReceive
rxd = MSCommKQ.Input '获得数据
sRxdData = rxd
sRxdData = Right(sRxdData, 12)
sChk = Right(sRxdData, 2)
If sChk = vbCr + vbLf Then
sRxdData = Mid(sRxdData, 1, 10) '卡号为前10位
OnNewCard (sRxdData)
Beep
End If
End Select
End Sub
'处理打卡事件
Private Sub OnNewCard(sCardId As String)
MsgBox sCardId