vb.net 在实现串口通讯时遇到的问题题!!!请大家帮忙!!
我引用 axmscomm 来实现!
代码 :
MSComm1.CommPort = 1
'文本方式读入。方式的采用与你的读卡机有关。读卡机向计算机发数据时,
'采用什么方式,你的读入方式得和读卡机的发送方式一致
MSComm1.InputMode = MSCommLib.InputModeConstants.comInputModeText
'每到一个字节就触发一个comEvReceive事件
MSComm1.RThreshold = 1
'设置并返回波特率、奇偶校验、数据位、停止位参数。这设置必不可少
'一定要把这个参数设置对,和读卡机一致,否则接不到数据或数据错误。
MSComm1.Settings = "9600,n,8,1"
'设置一次读入整个卡号长度。
MSComm1.InputLen = 100
'打开MSCOMM端口
MSComm1.PortOpen = True
Private Sub MSComm1_OnComm(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MSComm1.OnComm
str = str & MSComm1.Input
If str.Length > 50 Then
Dim a() As String = Split(str, ",")
Dim a1() As String = Split(a(1), "GS")
Dim a2() As String = Split(a1(1), "kg")
TextBox1.Text = Trim(a2(0))
Me.Refresh()
' If MSComm1.PortOpen = True Then MSComm1.PortOpen = False
str = ""
End If
'MsgBox(MSComm1.Input)
End Sub
问题1,有时候启动时不能启动 mscomm1的服务。 即不能触发 MSComm1_OnComm 的事件。
问题2,即使可以得到串口数据并显示在TEXTBOX1中,但如果在取串口数据的同时晃动鼠标,或者
用键盘输入数据程序就会死掉。我用断点测试发现程序只运行MSComm1_OnComm 的
str = str & MSComm1.Input 就跳出了!!
请高手帮忙 !! 非常感谢!!