vb.net关闭串口就卡 串口被关闭

vb.net 串口关闭时挂起

我处理这个问题的大概过程,当程序响应DataReceived时:

创新互联公司IDC提供业务:成都服务器托管,成都服务器租用,成都服务器托管,重庆服务器租用等四川省内主机托管与主机租用业务;数据中心含:双线机房,BGP机房,电信机房,移动机房,联通机房。

Private Sub MyCOMM_DataReceived(ByVal sender As Object, ByVal e As 

System.IO.Ports.SerialDataReceivedEventArgs) Handles MyCOMM.DataReceived

If IsClosing Then Exit Sub '如果界面正在关闭串口则退出过程

Try

IsListenning = True'设置正在读取标记,供界面操作判断

Wait(150)'等待150毫秒

Dim n As Long = MyCOMM.BytesToRead

Dim buf(n - 1) As Byte

Try

MyCOMM.Read(buf, 0, n)

Catch ex As Exception

MsgBox("接收短信出错", "COMPort.DataReceived")

Throw New System.Exception(ex.Message)

Finally

IsListenning = False'无论接收数据成功与否,都关闭正在读取标记

End Try

MyCOMM.Close()

MyCOMM.Open()

'Do SomeThing

Catch ex As Exception

MyCOMM.Close()

MyCOMM.Open()

End Try

End Sub

Protected Sub Wait(ByVal miliseconds As Integer)

Dim tmpNow As Date = Now

While Now.Subtract(tmpNow).Milliseconds  miliseconds

Application.DoEvents()

End While

End Sub

希望能帮的上忙

vb.net串口类程序,串口打不开

1、检查串口是否正确,比如COM1,COM2,COM3等;

2、检查波特率是否正确,比如9600,115200等;

3、检查数据位、停止位、校验位是否正确,比如8位数据位、1位停止位、无校验位等;

4、检查串口线是否接好;

5、检查串口是否被其他程序占用,可以使用串口调试助手查看;

6、检查串口驱动是否安装正确,可以在设备管理器中查看;

7、检查程序代码是否正确,可以使用串口调试助手查看。

使用vb.net接收大量串口数据时,界面卡顿

上位机软件接收大量数据并显示,会造成界面卡顿,可采用双缓冲技术,即将数据存到内存,再将其绘制到界面,比将数据直接绘制到界面要省很多时间

添加在子进程里面,就加在你批量传输代码里的每一个传输后面,也就是大批量中的每传输一个数据就暂停一下,而不是每一个大批量才暂停一下。

VB.NET中,串口接收数大量数据时如果执行SerialPort.close动作,程序会卡死在这里

对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。


网站栏目:vb.net关闭串口就卡 串口被关闭
标题路径:http://azwzsj.com/article/dojeipj.html