vb.net 写的串口通信类
来源:互联网 发布:淘宝城市人均消费2016 编辑:程序博客网 时间:2024/05/25 19:55
本人在工作中经常要编程控制仪器,所以就要经常会用到串口通信,GPIB通信,网线接口通讯,和PCI总线通讯方面的知识。自己在刚开始学习摸索时走了很多弯路,所以今天把自己写的一个串口通信类放在这里,我知道,在.net中实现串口通讯已经非常简单了,只需把控件放在窗体上,然后进行相关设置就可以进行基本的读写操作了。我只是稍微进行封装了一下,写在自己常用的类库里,方便调用使用。希望对大家小有帮助!话不多说,看内容:
#Region "SerialPort NI Control" '串口控制 ''' <summary> ''' 初始化串口 ''' </summary> ''' <param name="PortName">串口名称</param> ''' <param name="BaudRate">波特率</param> ''' <param name="DataBitsLength">数据位的长度</param> ''' <param name="StopBits">停止位</param> ''' <param name="Handshake">握手协议</param> ''' <param name="Parity">优先级</param> ''' <param name="ReadTimeOut">连接超时时间</param> ''' <remarks>初始化串口</remarks> Public Sub SerialPortInit(ByVal PortName As String, ByVal BaudRate As Integer, ByVal DataBitsLength As Integer, ByVal StopBits As StopBits, ByVal Handshake As Handshake, ByVal Parity As Parity, Optional ByVal ReadTimeOut As Integer = 1000) SerialPort = New SerialPort SerialPort.PortName = PortName '串口名称 SerialPort.BaudRate = BaudRate '波特率 SerialPort.DataBits = DataBitsLength '数据位的长度 SerialPort.StopBits = StopBits '停止位 SerialPort.Handshake = Handshake '握手协议 SerialPort.Parity = Parity '优先级 SerialPort.ReadTimeout = ReadTimeOut End Sub ''' <summary> ''' 载入串口名称 ''' </summary> ''' <param name="ComboxSerialPortName">串口容器</param> ''' <remarks>载入串口名称</remarks> Public Sub SerialPortLoadSerialPortPortName(ByVal ComboxSerialPortName As ComboBox) Try ComboxSerialPortName.Items.Clear() For Each PortName As String In IO.Ports.SerialPort.GetPortNames ComboxSerialPortName.Items.Add(PortName) Next ComboxSerialPortName.SelectedIndex = 0 Catch ex As Exception Throw New Exception("仪器串口与电脑串口为连接通:" & ex.Message) End Try End Sub ''' <summary> ''' 打开串口 ''' </summary> ''' <remarks>打开串口</remarks> Public Sub SerialPortOpenPort() Try If Not SerialPort.IsOpen = True Then SerialPort.Open() Else MsgBox("通讯端口打开错误或者通讯端口未打开", MsgBoxStyle.Information, "系统提示") End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub ''' <summary> ''' 关闭串口 ''' </summary> ''' <remarks>关闭串口</remarks> Public Sub SerialPortClosePort() Try If SerialPort Is Nothing OrElse Not SerialPort.IsOpen Then MsgBox("通讯端口还未打开", MsgBoxStyle.Information, "系统提示") Exit Sub Else SerialPort.Close() SerialPort = Nothing End If Catch ex As Exception MsgBox(ex.ToString) End Try End Sub ''' <summary> ''' 从缓冲区中读取制定的字节 ''' </summary> ''' <param name="Buffer">缓存字节</param> ''' <param name="Offset">偏移字节数量</param> ''' <param name="Count">读取数量</param> ''' <returns>返回从缓冲区中读取制定的字节</returns> ''' <remarks>从缓冲区中读取制定的字节</remarks> Public Overloads Function SerialPortRead(ByVal Buffer() As Byte, ByVal Offset As Integer, ByVal Count As Integer) As Integer Return SerialPort.Read(Buffer, Offset, Count) End Function ''' <summary> ''' 从缓冲区中读取制定的字符 ''' </summary> ''' <param name="Buffer">缓存字节数</param> ''' <param name="Offset">偏移量</param> ''' <param name="Count">读取字节个数</param> ''' <returns>返回从缓冲区中读取制定的字符</returns> ''' <remarks>从缓冲区中读取制定的字符</remarks> Public Overloads Function SerialPortRead(ByVal Buffer() As Char, ByVal Offset As Integer, ByVal Count As Integer) As Integer Return SerialPort.Read(Buffer, Offset, Count) End Function ''' <summary> ''' 从缓冲区中异步读取一个字节 ''' </summary> ''' <returns>返回从缓冲区中异步读取一个字节</returns> ''' <remarks>从缓冲区中异步读取一个字节</remarks> Public Overloads Function SerialPortReadByte() As Integer Return SerialPort.ReadByte() End Function ''' <summary> ''' 从缓冲区中异步读取一个字符 ''' </summary> ''' <returns>返回从缓冲区中异步读取一个字符</returns> ''' <remarks>从缓冲区中异步读取一个字符</remarks> Public Overloads Function SerialPortReadChar() As Integer Return SerialPort.ReadChar() End Function ''' <summary> ''' 读取缓冲区中立即可用的字符 ''' </summary> ''' <returns>返回读取缓冲区中立即可用的字符</returns> ''' <remarks>读取缓冲区中立即可用的字符</remarks> Public Overloads Function SerialPortReadExisting() As String Return SerialPort.ReadExisting End Function ''' <summary> ''' 读取输入缓冲区NewLine之前的内容 ''' </summary> ''' <returns>返回读取输入缓冲区NewLine之前的内容</returns> ''' <remarks>读取输入缓冲区NewLine之前的内容</remarks> Public Overloads Function SerialPortReadLine() As String Return SerialPort.ReadLine End Function ''' <summary> ''' 写入命令字符串 ''' </summary> ''' <param name="SerialPortmandStr">命令内容</param> ''' <remarks>写入命令字符串</remarks> Public Overloads Sub SerialPortWrite(ByVal SerialPortmandStr As String) SerialPort.Write(SerialPortmandStr) End Sub ''' <summary> ''' 写入指定数量的命令字节到缓存 ''' </summary> ''' <param name="Buffer">缓存字节</param> ''' <param name="Offset">字节偏移量</param> ''' <param name="Count">写入字节个数</param> ''' <remarks>写入指定数量的命令字节到缓存</remarks> Public Overloads Sub SerialPortWrite(ByVal Buffer() As Byte, ByVal Offset As Integer, ByVal Count As Integer) SerialPort.Write(Buffer, Offset, Count) End Sub ''' <summary> ''' 写入指定数量的命令字符到缓存 ''' </summary> ''' <param name="Buffer">缓存字符</param> ''' <param name="Offset">字节偏移量</param> ''' <param name="Count">写入字符个数</param> ''' <remarks>写入指定数量的命令字符到缓存</remarks> Public Overloads Sub SerialPortWrite(ByVal Buffer() As Char, ByVal Offset As Integer, ByVal Count As Integer) SerialPort.Write(Buffer, Offset, Count) End Sub#End Region
- vb.net 写的串口通信类
- vb.net 写的串口通信类
- [VB.NET源码]串口通信
- VB.Net 串口通信用法
- VB.NET串口通信例子
- VB.NET串口通信例子
- VB.NET串口通信例子--我的回忆录
- vb.net串口通信(SerialPort控件)
- vb.net及C#串口基本通信
- 偶写的串口通信类
- vb.net写的断点续传下载类
- vb串口通信编程
- vb.net的socket通信
- [VB.NET]串口通信-虚拟终端发送text文件,差异?
- JustinIO的vb.NET版本!(串口操作类)
- 一个基于API的VB.net串口通讯类
- VB.net写的调色板
- VB写的串口通信上位机,生成的EXE文件不能在其他电脑上运行。
- 搭建SVN,导入以前版本svn服务器上的共享文件的一些问题
- 思考,快与慢
- Linux一些使用小技巧(让你的操作方便犀利)(综合整理)
- Android网络通信的六种方式示例代码
- dwr 详解
- vb.net 写的串口通信类
- android实现手工翻页的效果
- 编程 找嫌犯--c实现
- android 中对apache httpclient及httpurlconnection的选择
- cygwin配置swig开发环境(Android)
- Struts2 action 跳转到 action 传值 方法
- 第十六周实验报告1
- 删除SVN图标及文件
- VS2010下调试出错"未能向文件写入命令行"和"对路径的访问失败"