vb.net访问串口 vb打开串口

VB与VB.NET串口及以太网通迅

关于串口通讯的问题:

创新互联长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为莲池企业提供专业的成都网站设计、网站建设莲池网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。

很明显,你还不知道(不会、不习惯)使用事件驱动的方式接收数据。

建议你仔细看看串口组件(无论VB6还是VB.net)的OnComm事件,你的问题很容易解决。

关于以太网通讯:

在TCP通讯中端口确实可以重用,你百度一下“TCP端口重用”能查到很多示例。

但绝大多数情况下不推荐端口重用,而应该采取服务器端建立连接池的方法。

或者,干脆不用TCP,用UDP解决也可以。

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

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

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

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

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

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

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

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

vb.net 怎么用事件触发的方式读取串口数据

首先:

textbox里没有显示,是因为SerialPort1和TextBox2不是同一线程创建的,需要跨线程操作。需要用到委托,这样才能显示出来。

其次:

我觉得用串口的接收数据事件更好一些。

下面代码供参考:

'----------------------

'串口接收数据事件,其实比用定时器更好,

'触发事件的条件可以自己在form_load中设置ReceivedBytesThreshold属性数值,默认为ReceivedBytesThreshold=1

Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived

Dim strRecvData As String = ""

strRecvData = SerialPort1.ReadExisting

Call disPlayComData(strRecvData)

End Sub

Delegate Sub callback(ByVal strT As String) '定义委托

Sub showString(ByVal comdata As String) '显示结果

Me.TextBox1.Text = "结果:" comdata

End Sub

Sub disPlayComData(ByVal strTmp As String) '判定是否为跨线程

If Me.TextBox1.InvokeRequired Then

Dim d As New callback(AddressOf showString)

Me.Invoke(d, New Object() {strTmp})

Else

Me.TextBox1.Text = strTmp

End If

End Sub


网站栏目:vb.net访问串口 vb打开串口
转载源于:http://pwwzsj.com/article/dojdeee.html