首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

vb2008 串口接收事件有关问题 port_DataReceived()

2012-09-14 
vb2008 串口接收事件问题 port_DataReceived()我做的一个串口通信程序,程序通过串口1向串口2的串口调试助

vb2008 串口接收事件问题 port_DataReceived()
我做的一个串口通信程序,程序通过串口1向串口2的串口调试助手发送命令,然后串口调试助手又向该程序发送一个接收确认命令。
接收程序以事件的方式触发。

问题是程序在发送时,总是莫名的接收到串口2数据,即使是串口2程序没有回信也能收到,这种数据是随机的十六进制数据。

我将串口1与串口2的线分断开,物理上没有任何连接,每当发送的命令时,可是还能收到莫名的数据,有时候还会全盘的接收到该程序本身发送的数据,即发送的数据又被自己莫名的接到,串口发送的数据触发了自己的接收事件,又被自己收到了,真是怪事,请大侠们指教。

  Private Sub serporCamCtrl_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles serporCamCtrl.DataReceived
  Port.Receive()‘调用接收处理程序
  End Sub

[解决办法]
Public Event DataReceived As SerialDataReceivedEventHandler
Dim instance As New SerialDataReceivedEventHandler(AddressOf HandlerMethod)

AddHandler comPort.DataReceived, instance

Private Sub HandlerMethod(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
'Do Something
End Sub

16个串口并发,未发现问题
[解决办法]
Public Event DataReceived As SerialDataReceivedEventHandler
Dim instance As New SerialDataReceivedEventHandler(AddressOf HandlerMethod)

AddHandler comPort.DataReceived, instance

Private Sub HandlerMethod(ByVal sender As Object, ByVal e As SerialDataReceivedEventArgs)
'Do Something
End Sub

16串口并发,未发现问题
[解决办法]
可能原因:
1.线接错了,自己2,3短路了
2.测试过程有问题,建议不使用物理连接,网上搜索SerialNull软件模拟串口直连。用sscomm32模拟下位机调通讯命令。
3.仔细检查代码,看看我的博客,或是你发代码我帮你看看。
[解决办法]
可能用了串口调试状态,就会有这种状态

热点排行