一个基于API的VB.net串口通讯类

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字节来读取缓冲区里的数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值