网站建设资讯

NEWS

网站建设资讯

vb.net关闭串口 vbnet串口控件

vb.net serialport 打开串口 如果不操作 会自动关闭该如何处理

我在开始程序运行时候 同时打开两个串口 比如 COM1 和 COM2 当一开始只用到COM1 过段时间后 COM2 会自动关闭? COM2 暂时还没用到。 ------解决方案-------------------------------------------------------- 沙发,帮顶! ------解决方案-------------------------------------------------------- 不会,除非代码中有BUG. ------解决方案-------------------------------------------------------- 不会自动关闭的 或者通过代码关闭 ------解决方案-------------------------------------------------------- 打开后必须关闭的,应该不会自动关闭 ------解决方案-------------------------------------------------------- 用两个SerialPort 对象,分别打开两个串口,应该不会出现你这样的问题。MSDN: SerialPort.Open 方法 每个 SerialPort 对象只能有一个打开的连接。 对于所有应用程序,最佳做法是在调用 Close 方法之后和尝试调用 Open 方法之前等待一会 儿,因为端口可能未即时关闭。 ------解决方案-------------------------------------------------------- 用线程控制个时间,及时开关 不会自动关闭。

成都创新互联致力于成都网站建设、网站设计,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联,就选择了安全、稳定、美观的网站建设服务!

vb.net 串口关闭时挂起

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

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中,串口接收数大量数据时如果执行SerialPort.close动作,程序会卡死在这里

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


网站栏目:vb.net关闭串口 vbnet串口控件
本文路径:http://cdweb.net/article/doeohpd.html