符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
我在开始程序运行时候 同时打开两个串口 比如 COM1 和 COM2 当一开始只用到COM1 过段时间后 COM2 会自动关闭? COM2 暂时还没用到。 ------解决方案-------------------------------------------------------- 沙发,帮顶! ------解决方案-------------------------------------------------------- 不会,除非代码中有BUG. ------解决方案-------------------------------------------------------- 不会自动关闭的 或者通过代码关闭 ------解决方案-------------------------------------------------------- 打开后必须关闭的,应该不会自动关闭 ------解决方案-------------------------------------------------------- 用两个SerialPort 对象,分别打开两个串口,应该不会出现你这样的问题。MSDN: SerialPort.Open 方法 每个 SerialPort 对象只能有一个打开的连接。 对于所有应用程序,最佳做法是在调用 Close 方法之后和尝试调用 Open 方法之前等待一会 儿,因为端口可能未即时关闭。 ------解决方案-------------------------------------------------------- 用线程控制个时间,及时开关 不会自动关闭。
成都创新互联致力于成都网站建设、网站设计,成都网站设计,集团网站建设等服务标准化,推过标准化降低中小企业的建站的成本,并持续提升建站的定制化服务水平进行质量交付,让企业网站从市场竞争中脱颖而出。 选择成都创新互联,就选择了安全、稳定、美观的网站建设服务!
我处理这个问题的大概过程,当程序响应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
希望能帮的上忙
对同一个串口的操作应该放在单个线程里,你的程序应该将串口接收和串口关闭的执行都放在一个线程里进行,这样在接收数据的间隙就可以正常执行close动作。而不会造成两个线程都在操作串口。