在vb中如何实现串口数据的读取

最近在搞一个读卡器的程序,需要从串口处把读卡器传送过来的一串字符读出并显示出来,我现在用的是MSCOMM控件,但总是没办法从串口读到东西,急的我都快要抓狂了,望哪位高手不... 最近在搞一个读卡器的程序,需要从串口处把读卡器传送过来的一串字符读出并显示出来,我现在用的是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
展开
 我来答
zdingyun
2006-07-27 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48170
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部
未见串口打开语句,你的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
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式