我用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 线变化。
不知道这个值是什么意思?
展开
 我来答
wynness
2008-10-23 · TA获得超过1676个赞
知道小有建树答主
回答量:2245
采纳率:50%
帮助的人:1203万
展开全部
不是事件不触发,根本是com口没数据收到!
你发的时候看看oncomm是不是会有反应啊?
所以说不是程序有问题,而是硬件收到信息后没给com口发信息,当然就不会触发oncomm了
这个问题我也摸了近半个来月
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式