转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> VB.NET程序 >> 正文
JustinIO的vb.NET版本!(串口操作类)         ★★★★

JustinIO的vb.NET版本!(串口操作类)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2655 更新时间:2009/4/23 19:00:30
;        Public Internal As Integer
            Public InternalHigh As Integer
            Public Offset As Integer
            Public OffsetHigh As Integer
            Public hEvent As Integer
        End Structure

#End Region

#Region "Windows API"
        <DllImport("kernel32.dll", CharSet:=CharSet.Auto)> _
               Private Shared Function CreateFile( _
               ByVal lpFileName As String, _
               ByVal dwDesiredAccess As UInt32, _
               ByVal dwShareMode As Integer, _
               ByVal lpSecurityAttributes As Integer, _
               ByVal dwCreationDisposition As Integer, _
               ByVal dwFlagsAndAttributes As Integer, _
               ByVal hTemplateFile As Integer) As Integer
        End Function
        ''''参数介绍:
        ''''lpFileName 要打开的串口名称
        ''''dwDesiredAccess 指定串口的访问方式,一般设置为可读可写方式
        ''''dwShareMode 指定串口的共享模式,串口不能共享,所以设置为0
        ''''lpSecurityAttributes 设置串口的安全属性,WIN9X下不支持,应设为NULL
        ''''dwCreationDisposition 对于串口通信,创建方式只能为OPEN_EXISTING
        ''''dwFlagsAndAttributes 指定串口属性与标志,设置为FILE_FLAG_OVERLAPPED(重叠I/O操作),指定串口以异步方式通信
        ''''hTemplateFile 对于串口通信必须设置为NULL
        <DllImport("kernel32.dll")> _
        Private Shared Function GetCommState(ByVal hFile As Integer, ByRef lpDCB As DCB) As Boolean
        End Function
        ''''参数介绍
        ''''hFile 通信设备句柄
        ''''DCB lpDCB 设备控制块DCB

<DllImport("kernel32.dll")> _
        Private Shared Function BuildCommDCB(ByVal lpDef As String, ByRef lpDCB As DCB) As Boolean
        End Function
        ''''参数介绍
        ''''lpDef 设备控制字符串
        ''''lpDCB 设备控制块DCB
        <DllImport("kernel32.dll")> _
        Private Shared Function SetCommState(ByVal hfile As Integer, ByRef lpDCB As DCB) As Boolean
        End Function
        ''''参数说明
        ''''hFile 通信设备句柄
        ''''lpDCB 设备控制块
        <DllImport("kernel32.dll")> _
        Private Shared Function GetCommTimeouts(ByVal hfile As Integer, ByRef lpCommTimeouts As COMMTIMEOUTS) As Boolean
        End Function
        ''''参数说明
        ''''hFile 通信设备句柄 handle to comm device
        ''''lpCommTimeouts 超时时间 time-out values
        <DllImport("kernel32.dll")> _
        Private Shared Function SetCommTimeouts(ByVal hfile As Integer, ByRef lpCommTimeouts As COMMTIMEOUTS) As Boolean
        End Function
        ''''参数说明
        ''''hFile 通信设备句柄 handle to comm device
        ''''lpCommTimeouts 超时时间 time-out values
        <DllImport("kernel32.dll")> _
        Private Shared Function ReadFile(ByVal hFile As Integer, ByVal lpBuffer() As Byte, _
        ByVal nNumberOfBytesToRead As Integer, ByRef lpNumberOfBytesRead As Integer, _
        ByRef lpOverlapped As OVERLAPPED) As Boolean
        End Function
        ''''参数说明
        ''''hFile 通信设备句柄 handle to file
        ''''lpBuffer 数据缓冲区 data buffer
        ''''nNumberOfBytesToRead 多少字节等待读取 number of bytes to read
        ''''lpNumberOfBytesRead 读取多少字节 number of bytes read
        ''''lpOverlapped 溢出缓冲区 overlapped buffer
        <DllImport("kernel32.dll")> _
        Private Shared Function WriteFile(ByVal hFile As Integer, ByVal lpBuffer() As Byte, _
        ByVal nNumberOfBytesToRead As Integer, ByRef lpNumberOfBytesWritten As Integer, _
        ByRef lpOverlapped As OVERLAPPED) As Boolean
        End Function
        ''''参数介绍
        ''''hFile 通信设备句柄 handle to file
        ''''lpBuffer 数据缓冲区 data buffer
        ''''nNumberOfBytesToWrite 多少字节等待写入 number of bytes to write
        ''''lpNumberOfBytesWritten 已经写入多少字节 number of bytes written
        ''''lpOverlapped 溢出缓冲区 overlapped buffer
        <DllImport("kernel32.dll")> _
        Private Shared Function CloseHandle(ByVal hObject As Integer) As Boolean
        End Function
        ''''参数hObject 要被关闭的句柄 handle to object
        <DllImport("kernel32.dll")> _
        Private Shared Function GetLastError() As UInt32
        End Function
#End Region
        Public Sub open()
            Dim dcbCommPort As New DCB
            Dim ctoCommPort As New COMMTIMEOUTS
            ''''// 打开串口 OPEN THE COMM PORT.
            hComm = CreateFile(PortNum, UInt32.Parse(GENERIC_READ Or GENERIC_WRITE), 0, 0, OPEN_EXISTING, 0, 0)
            ''''// 如果串口没有打开,就打开 IF THE PORT CANNOT BE OPENED, BAIL OUT.
            If hComm = INVALID_HANDLE_VALUE Then
                Throw (New ApplicationException("非法操作,不能打开串口!"))
            End If
            ''''// 设置通信超时时间 SET THE COMM TIMEOUTS.
            GetCommTimeouts(hComm, ctoCommPort) ''''ref
            ctoCommPort.ReadTotalTimeoutConstant = ReadTimeout
            ctoCommPort.ReadTotalTimeoutMultiplier = 0
            ctoCommPort.WriteTotalTimeoutMultiplier = 0
            ctoCommPort.WriteTotalTimeoutConstant = 0
            SetCommTimeouts(hComm, ctoCommPort) ''''ref
            ''''// 设置串口 SET BAUD RATE, PARITY, WORD SIZE, AND STOP BITS.
            GetCommState(hComm, dcbCommPort) ''''ref
            dcbCommPort.BaudRate = BaudRate
            dcbCommPort.flags = 0
            ''''//dcb.fBinary=1;
    &nbs

上一页  [1] [2] [3]  下一页


[C语言系列]NET 中C#的switch语句的语法  [系统软件]托拽Explore中的文件到VB.net的窗口
[系统软件]Boost库在XP+Visual C++.net中的安装  [常用软件]新配色面板:Paint.Net3.0RC1官方下载
[常用软件]用内建的“Net Meeting”聊天  [VB.NET程序]Henry的VB.NET之旅(三)—共享成员
[VB.NET程序]Henry的VB.NET之旅(二)—构造与析构  [VB.NET程序]Henry的VB.NET之旅(一)—失踪的窗体
[VB.NET程序]在托盘上显示Balloon Tooltip(VB.NET)  [VB.NET程序]Henry手记-VB.NET中动态加载Treeview节点(二)
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台