vb.net 在实现串口通讯时遇到的问题题!!!请大家帮忙!!

wangchong 2006-09-09 10:41:01
我引用 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 就跳出了!!

请高手帮忙 !! 非常感谢!!



...全文
415 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
GreatWall929 2006-09-16
up
回复
alan001 2006-09-16
必须是ASCII字符(值<128),否折要Dim b() As Byte
回复
alan001 2006-09-16
substr=Comm1.Input

timedelay 1000

str=str&substr
回复
shibill 2006-09-14
有,世纪飞扬的串口精灵很好用,去下一个吧,不是广告哦
回复
rl0516 2006-09-13
用SerialPort类试一下
回复
add777 2006-09-13
好像用处不是很大???
你丫按我说的,第一个问题要是解决不成你就撞墙去把。
回复
wangchong 2006-09-13
好像用处不是很大。请大家帮忙!!!
回复
azyue 2006-09-13
有没有串口通讯模拟软件?
回复
alan001 2006-09-09
Up
回复
add777 2006-09-09
问题1:
mscomm1.RThreshold = 1
mscomm1.rtsEnable = true
问题2:
这个要单步调试。
回复
相关推荐
发帖
VB
创建于2007-09-28

1.6w+

社区成员

VB技术相关讨论,主要为经典vb,即VB6.0
申请成为版主
帖子事件
创建了帖子
2006-09-09 10:41
社区公告
暂无公告