VB.net的串口通讯支持总是让人觉得有所不足,在使用VB6的MsComm32.ocx时,很多人都会在VB.net的开发中觉得很困扰。
这里讲述的VB.net串口通讯类使用native代码,并且它是通API调用实现的,你会发现VB.net的串口通讯就是这么简单。
在说明如何使用这个类前,需要说明的是,本类只是一个VB.net的串口通讯演示,你可能需要根据你的情况修改后使用。另外,本类的目的是通过例子教会你在无需ocx控件和第三方组件的支持下用VB.net开发串口通讯程序,所有并没有完善的异常错误处理。
1.初始化并打开串口
创建一个CRs232类的实例,并在调用Open方法前设置好串口通讯参数。
例:
Dim moRS232 as New Rs232()
With moRs232
.Port = 1 '// Uses COM1
.BaudRate = 2400 '// 波特率 2400
.DataBit = 8 '// 8 data bits
.StopBit = Rs232.DataStopBit.StopBit_1 '// 停止位 1
.Parity = Rs232.DataParity.Parity_None '// 无奇偶校验
.Timeout = 500 '//超时时间500 ms
End With
'// 初始化并打开串口
moRS232.Open ()
'// 串口打开后,你可以随意地控制DTR/RTS
moRS232.Dtr = True
moRS232.Rts = True
为了处理异常情况,建议你使用Try...Catch。
2.发送数据
本类为Rx和Tx准备了两个缓冲区(buffer),发送数据时,只需要设置TxData属性为你需要发送的数据,然后调用Tx方法就可以了。
例如:
moRS232.TxData = txtTx.Text
moRS232.Tx()
3.接收数据
先调用Rx方法(参数为您需要从串口读取的字节数),然后读取RxData属性。
例如:
moRS232.Rx(10) '// 从串口通讯缓冲区里读取10字节
Dim sRead as String=moRs232.RxData
需要注意的是,当本类无法用串口读取到所需的字节数,程序线程在超时异常发生前是锁死的,超时时间通过Timout属性设置。
如果你没有指明需要读取的字节数,本类默认使用512字节来读取缓冲区里的数据。
一个基于API的VB.net串口通讯类
最新推荐文章于 2022-06-19 13:12:33 发布