我用MScomm控件读取串口的数据,无法触发MSComm1_OnComm事件?
我要读取ic卡的数据,通过串口连接,vb代码如上。问题是怎么也触发不了MSComm1_OnComm事件。请各位大侠们帮助一下,不胜感激!源码如下:btrate是1200,...
我要读取ic卡的数据,通过串口连接,vb代码如上。问题是怎么也触发不了MSComm1_OnComm事件。请各位大侠们帮助一下,不胜感激!
源码如下:
btrate是1200,奇偶校验是O,数据位是7,停止位是1。
Private Sub Form_Load()
Dim port As Integer
port = 1
With MSComm1
.CommPort = port '使用COM1端口
.Settings = "1200,O,7,1"
.InputMode = comInputModeBinary '采用二进制传输
'MSComm1.SThreshold = 1
.RThreshold = 1 '产生MSComm事件
.InBufferCount = 0 '清空接受缓冲区
'MSComm1.OutBufferCount = 0 '清空传输缓冲区
.InBufferSize = 1024
.PortOpen = True
End With
If Err Then '错误处理
MsgBox "串口通信无效"
End If
End Sub
Private Sub MSComm1_OnComm()
Dim Buffer As Variant
Dim Hexbuffer(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
'告诉控件读入整个缓冲区
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
Buffer = MSComm1.Input
Hexbuffer(0) = AscB(Buffer)
'MSComm1.InputMode = comInputModeText
'Buffer = AscB(MSComm1.Input)
Text1.Text = Text1.Text & Hex(Hexbuffer(0)) '转换成十六进制
Case Else
End Select
MSComm1.PortOpen = False '关闭串口连接
End Sub
wynness兄,现在你的问题解决了没有,如果解决了,那是怎么解决的?盼望解答,谢谢!
现在问题是mscomm1.commevent的值是3,也就是这个comEvCTS 3 ‘clear-to-send 线变化。
不知道这个值是什么意思? 展开
源码如下:
btrate是1200,奇偶校验是O,数据位是7,停止位是1。
Private Sub Form_Load()
Dim port As Integer
port = 1
With MSComm1
.CommPort = port '使用COM1端口
.Settings = "1200,O,7,1"
.InputMode = comInputModeBinary '采用二进制传输
'MSComm1.SThreshold = 1
.RThreshold = 1 '产生MSComm事件
.InBufferCount = 0 '清空接受缓冲区
'MSComm1.OutBufferCount = 0 '清空传输缓冲区
.InBufferSize = 1024
.PortOpen = True
End With
If Err Then '错误处理
MsgBox "串口通信无效"
End If
End Sub
Private Sub MSComm1_OnComm()
Dim Buffer As Variant
Dim Hexbuffer(0) As Byte
Select Case MSComm1.CommEvent
Case comEvReceive
'告诉控件读入整个缓冲区
MSComm1.InputLen = 0
MSComm1.InputMode = comInputModeBinary
Buffer = MSComm1.Input
Hexbuffer(0) = AscB(Buffer)
'MSComm1.InputMode = comInputModeText
'Buffer = AscB(MSComm1.Input)
Text1.Text = Text1.Text & Hex(Hexbuffer(0)) '转换成十六进制
Case Else
End Select
MSComm1.PortOpen = False '关闭串口连接
End Sub
wynness兄,现在你的问题解决了没有,如果解决了,那是怎么解决的?盼望解答,谢谢!
现在问题是mscomm1.commevent的值是3,也就是这个comEvCTS 3 ‘clear-to-send 线变化。
不知道这个值是什么意思? 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询