男士隆鼻效果图:在vb中如何实现串口数据的读取

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 01:49:41
最近在搞一个读卡器的程序,需要从串口处把读卡器传送过来的一串字符读出并显示出来,我现在用的是MSCOMM控件,但总是没办法从串口读到东西,急的我都快要抓狂了,望哪位高手不吝赐教,感激涕零!
以下是我写的vb代码:

Private Sub Command1_Click()
''
Dim msg As String
Command1.Caption = "串口2已启动"
MSComm1.CommPort = 2
MSComm1.Settings = "9600,N,8,1"
MSComm1.InputLen = 0
MSComm1.OutBufferSize = 256
MSComm1.InBufferSize = 512
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

''
End Sub

Private Sub Command3_Click()
''
MSComm1.PortOpen = False
Command1.Caption = "启动串口2"

''
End Sub

Private Sub MSComm1_OnComm()
''
Dim Buffer As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
Buffer = MSComm1.Input
MSComm1.InputMode = comInputModeText
Buffer = AscB(MSComm1.Input)
Text1.Text = Buffer
Case Else
End Select
''
End Sub

未见串口打开语句,你的MSComm1_OnComm事件代码有些冲突,你究竟想以二进制接收还是以ASCII码接收:
Private Sub MSComm1_OnComm()
''
Dim Buffer As Variant
Select Case MSComm1.CommEvent
Case comEvReceive
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary‘此处及后3句用前2句不用后2句,反之亦然
Buffer = MSComm1.Input
MSComm1.InputMode = comInputModeText
Buffer = AscB(MSComm1.Input)
Text1.Text = Buffer
Case Else
End Select
''
End Sub