vb串口通信_vb串口通信出现实时错误8020 - CSDN
精华内容
参与话题
  •  里面关于中文接收的部分,大家可以好好学习下,题主也在研究中................... Commport;设置或返回串口号。...SettingS:以字符串的形式设置或返回串口通信参数。 Portopen:设置或返回串口状态

    标记:该篇文章全部搬自如下网址:http://www.crystalradio.cn/thread-321839-1-1.html,谢谢啦

               里面关于中文接收的部分,大家可以好好学习下,题主也在研究中...................

    Commport;设置或返回串口号。

    SettingS:以字符串的形式设置或返回串口通信参数。
    Portopen:设置或返回串口状态。
    InputMode:设置或返回接收数据的类型。
    Inputlen:设置或返回一次从接收缓冲区中读取字节数。
    InBufferSize:设置或返回接收缓冲区的大小,缺省值为l 024字节。
    InBufferCount:设置或返回接收缓冲区中等待计算机接收的字符数。
    Input:从接收缓冲区中读取数据并清空该缓冲区,该属性设计时无效,运行时只读。
    OutBufferSize:设置或返回发送缓冲区的大小,缺省值为512字节。
    OutBufferCount:设置或返回发送缓冲区中等待计算机发送的字符数。
    Output:向发送缓冲区发送数据,该属性设计时无效,运行时只读。
    设置好这些属性和方法,程序很容易就可以编出来了,其中要注意的是串口的波特串设置,OnComm事件的程序编写。    
    程序的设计是这样的,计算机向单片机发送一个’S’,表示通信开始。然后紧接着又发送9个字符,其中最后一个字符是前面9个字符(包括’S’)的校验和。单片机正确接收到10个字符后,把10个字符从新又送回来。
    //---------------------------------------初始化串口设计-----------------------------   
    Private Sub Form_Load()
    Comm1.Setting="9600,n,8,1,"   ’设置波特率和发送字符格式
    Comm1.CommPort=1          ’设置通讯串口
    Comm1.InputLen=0          ’设置或返回一次从接收缓冲区中读取字节数,0表示一次读取所有数据
    Comm1.InBuffersize=512
    Comm1.InBufferCount=0
    Comm1.OutBufferCount=0
    Comm1.Rthreshold=1
    Comm1.PortOpen=True
    End Sub                      ’打开串口
    //--------------------------------------给单片机发送’S’,开始通信-----------------------------   
    Private Sub Command1_C1ick()
    Timer1.Enabled=True
    End Sub
    Private Sub Command2_C1ick()
    Varbuffet=“S”                   
    Comm1.Ouput=varbuffe
    Timer2.Enabled=True
    End Sub
    Private Sub Form_Unload(Cancel As Integer)
    Comm1.PortOpen=False
    End Sub
    //---------------------------------------向单片机发送数据-----------------------------   
    Private Sub Timer2_ Timer()
    Outputsignal=Str(Text2.text)                           ’向单片机发送数据
    Temp(1)=Cbyte(outputsignal)
    Varbuffer=temp
    Comml.Output=varbuffer
    Timer2.Enabled=False
    End Sub
    //---------------------------------------接收单片机发送的数据,并显示-----------------------------   
    Private Sub Comm1_OnComm()
    Select Case Comm1.CommEvent          ’设置oncomm事件,读取片机内存的值
    Case comEvReceive
    Inputsignal=comm1.Input
    Text1.Text=Asc(Inputsignal)               ’单片机内存的值用textbox显示出
    Case Else
    End select
    End Sub



    关于MSCOMM控件的一些说明
        VB5.0/6.的MSComm通信控件提供了一系列标准通信命令的接口,它允许建立串口连接,可以连接到其他通信设备(如Modem).
    还可以发送命令、进行数据交换以及监视和响应在通信过程中可能发生的各种错误和事件,从而可以用它创建全双工 、事件驱
    动的、高效实用的通信程序。但在实际通信软件设计过程中,MSComm控件并非像想像中那样完美和容易控制.特别是在中文Wln
    95/98下通信时更会出现问题。下面就从基础开始介绍,然后逐步讨沦MSComm控件在编程中出现的问题以及编程技巧。
    一、用MSComm控件通信
    1.串口通信基础知识
         一般悦来,计算机都有一个或多个串行端口,它们依次为com1、Com2、…,这些串口还提供了外部设备与pC进行数据传输和
    皿信的通道。这些串口在CPU和外设之间充当解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特
    流数据;当接收数据时,比特流数据被转换为字符数据传递给CPU,再进一步说,在操作系统方面,Windows用通信驱动程序
    (COMM.DRV)调用API函数发送和接收数据,当用通信控件或声明调用API函数时,它门由COMM. DRV解释并传递给设备驱动程序,
    作为一个vB程序员,要编写通信程序.只需知道通信控件提供给Windows通信AP1函数的接口即可.换句话说,只需设定和监视通
    信控件的属性和事件即可。
    2.使用Mscomm控件
    在开始使用MSComm控件之前。需要先了解其属性、事件或错误
    属性            描述
    CommPort    设置或返回通信端口号
    Settings    以字符串的形式设置或返回波特率、奇偶校验、数据位和停止位
    PortOpen    设置或返回通信端口的状态。也可以打开和关闭端口
    Input       返回和删除接收缓冲区中的字符
    Output      将字符串写入发送缓冲区

    CommEvent属性为通信事件或错误返回下列值之一。在该控件的对象库中也可以找到这些常量。
    常量           值        描述
    ComEventBreak   1001    收到了断开信号
    ComEventCTSTO   1002    Clear To Send Timeout。在发送字符时,在系统指定的事1件内,CTS(Clear To Send)线是低电平
    ComEventDSRTO   1003    Data Set Ready Timeout。在发送字符时,在系统指定的事件内,DSR(Data Set Ready)线是低电平
    ComEventFrame   1004    数据帧错误。硬件检测到一个数据帧错误
    ComEventOverrun 1006    端口溢出。硬件中的字符尚未读,下一个字符又到达,并且丢失
    ComEventCDTO    1007    Carrier Detect Time。在发送字符时,在系统指定的事件内,CD(Carrier Detect)线是低电平。CD
                             也称为RLSD(Receive Line Singal Detect,接收线信号检测)
    ComEventRxOver 1008    接收缓冲区溢出。在接收缓冲区中没有空间
    ComEventRxParity 1009   奇偶校验错。硬件检测到奇偶校验错误7
    ComEventTxFull 1010    发送缓冲区满。在对发送字符排队时,发送缓冲区满
    ComEventDCB     1011    检取端口DCB(Device Control Blick)时发生了没有预料到的错误

    通信事件包含了下面的设置:
    常量         值        描述
    ComEvSend      1    发送缓冲区中的字符数比Sthreshold值低
    ComEvReceive   2    接收到了Rthreshold个字符。持续产生该事件,直到使用了Input属性删除了接收缓冲区中的数据
    ComEvCTS       3    CTS(Clear To Send)线改变
    ComEvDSR       4    DSR(Data Set Ready)线改变。当DSR从1到0改变时,该事件发生
    ComEvCD        5    CD(Carrier Detect)线改变ComEvRing6检测到响铃信号。一些URAT(Universal AsynchronousReciver-
                         -Transmitters,通用异步收发器)不支持该事件
    ComEvEOF       7    收到了EOF字符(ASCII字符26)

    Error消息(MSComm控件)下表列出了MSComm控件可捕获的错误消息:
    常量                       值      描述
    ComInvalidPropertyValue    380   无效的属性值
    ComSetNotSupported         383   属性只读
    ComGetNotSupported         394   属性只读
    ComPortOpen               8000   端口打开时该存在无效
                               8001   超时设置必须比0值大
    ComPortInvalid            8002   无效的端口号
                               8003   属性只在运行时有效
                               8004   属性在运行时是只读的
    ComPortAleadyOpen         8005   端口已经打开
                               8006   设备标识符无效或不支持
                               8007   不支持设备的波特率
                               8008   指定的字节大小无效
                               8009   缺省参数错误
                               8010   硬件不可用(被其他设备锁住)
                               8011   函数不能分配队列
    ComNoOpen                 8012   设备没有打开
                               8013   设备已经打开
                               8014   不能使用通信通知
    ComSetCommStateFailed     8015   不能设置通信状态
                               8016   不能设置通信事件屏蔽
    ComPortNotOpen            8018   该存在只在端口打开是有效
                               8019   设备忙
    ComReadError              8020   通信设备读错误
    ComDCBError               8021   检取端口设备控制块时出现内部错误

    搞清楚以上基本属性后,就可以开始编写通信许程序了。在VB5.0/6.0中新建一个工程文件。添加Microsoft Comm Control 5.0组
    件,在简体Form1中加入Command命令按钮并取名为CmdTest,MSComm控件取名为MSComm1,加入如下程序代码。
    Private Sub cmdTestClick ( )            '打开串口
    MSComml.CommPort =2                     '设定Com2
    If MSComml.PortOpen = False Then
    MSComm1.Settings = "9600,n,8,1"         '9600波特率,无校验,8位数据位,1位停止位
    MSComm1.PortOpen = True                 '打开串口
    End if
    MSComm1.OutBufferCount = 0              '清空发送缓冲区
    MSComm1.InBufferCount = 0               '滑空接收缓冲区

    '发送字符数据时注意必须用回车符(vbcr)结束
    MSComm1.Output="This is a qood book ! " &vbCr

    '泼打电话号码或发送AT命令
    MSComm1.Output = "ATDT 05778191898 , & vbCr

    '发送字符数组数据时注意ByteArray必须事先定义赋值
    Dim ByteArray as byte( )

    '定义动态数组
    ReDim ByteArray(1)

    '重定义数组大小
    ByteArray ( 0 ) =0
    ByteArray ( 1 ) = 1
    MSComm1.Output = ByteArray
    End Sub

    private Sub MScommEvent( )
    Select Case MSComm1.CommEvent
    Case comEvReceive
    Dim Buffer As Variant
    MSComm1.InputLen = 0
    '接收二进制数据
    MSComm1.InputMode= ComInputModeBinary
    Buffer=MSComm1.Input
    '接收字符数据
    MSComm1.InputMode=comInputModeText
    Buffer = MSComml.Input
    Case else
    End Select
    End sub

    ( 程序1)

    -----------------------------------------------------------------------------------------------------------------------

    二、中文Win 95/98下的通信问题与解决方法
    1.接收的数据少于发送的数据
         如果通过MSComm控件一次性传送较多的二进制数据,那么,很可能收到的数据不足。例如在设置为24oobps传输率的情况下,
    一次性可以传输2048个字符数据那么在大多数情况下。一次只能收到1200个字符左右,这址出为新版的MSComm32.OCX中存在一
    个影响传输二进制数据的臭虫(bug).注意这不是特性。
         32位Windows API函数(以下简称API)使用了几个用COMMTIMEOUTS结构表示的限时变量,WriteTotalTimeOutConstant 即是其
    中的一个,它被Windows内部设定为5000(即5秒),这个常量决定了在通信驱动程序停止传输之前花费在发送缓冲区中数据的时间
    的长短,5秒钟意味着通信速度为1200bps情况下仅能发送600个字符,24oobps情况下仅能发送1200个左右的字符。事实上,在一个
    缓冲区内一次性发送更多的数据是非常可能的。这个bug同样也能引发问题,甚至在高速串口门通信情况下,即使系统在使用流控
    制,无论丛软件流(Xon/XofI)还是硬件流(CTS/RTS)。假如数据在发送缓冲区中时,流控制停止了传输,如果停止时间超过5
    秒钟.则数据就会丢失。在某些环境下,5秒钟可能相当短.不过也不必担心, VB 5.0/6.0版本的MSComm控件有一个新增的重要的
    属性称为CommID, CommID指的是当串口被打开时,被API所调用的串口句柄或称标志,这也意味着能利用API接口函数去修改这个
    常量。每次串口关闭后,Windows会自动将之恢复为5000,所以,每次打开串口后需要重斩设定以下API声明,其代码见下程序。
    Type COMMTIMEOUTS
    ReadIntervalTimeout As Long
    ReadTotalTimeoutMultiplier As Long
    ReadTotalTimeoutConstant As Long
    WriteTotalTimeoutMultiplier As Long
    WriteTotalTimeoutConstant As Long
    End Type
    Declare Function SetCommTimeouts Lib "Kernel32"
    (BYVal hFile As Long, lpComm TimeoutsAs COMMTIMEOUTS) As Long
    Declare Function GetCommTimeouts Lib "Kernel32"
    (ByVal hFile As Long, lpCommTimeouts As COMMTIMEOUTS) As Long
    Dim timeouts As COMMEOUTS
    Dim Ret As Long
    If Comm1.PortOpen = False Then
    Comm1.PortOpen = True
    End if
    Ret=GetCommTimeouts ( Comm1.CommID , timeouts )
    'Set some default timeouts
    timeOuts.ReadIntervalTimeout = 1
    timeouts.ReadTotalTimeoutMultiplier =1
    timeouts.ReadTotalTimeoutConstant =1
    timeouts.WriteTotalTimeoutMultiplier =1
    timeouts.WriteTotalTimeoutConstant=
    ( Comm1.OutBufferSize\Val(Comm1.Settings))*10000+1000
    Ret=SetCommTimeouts( Comm1.CommID , timeouts )
    ( 程序2)

    2.如何发送大于128的字符数据
         在通信程序中,以单字符方式逐个发送数据时,每一个数据范围 0-255(即十六进制的00-FF)。在单字符版本的英文Win95或
    DOS版的BASIC程序中,只需要将相应的数据转换成相应的字符发送到通信端口即可。但在中文Win95/98下却行不通,假设在中文
    Win95/98下运行以下程序:
    Dim i
    For i=0 to 255
    MSComm1.Output=chr(i)
    Next i

        希望在接收端得到预期的0-255之间的数据,结果却是:前129个数据接收正确,为0-128,后面127个数据为126个0和一个255,
    造成这种给果的原因在于中文Windows使用的是双字节字符集(DBCS)系统。DBCS系统使用0-128之间的数字表示ASCII字符,大于
    128的数字仅作为前导字符,它只是显示是一个非拉丁语系的字符,而并不代表实际意义。上述程序在调用CHR()函数时用到了
    DBCS字符集,冈此产生了此类错误。那么,如何发送人于128的数据呢?答案是使用字符数组,将以上程序改为:
    Dim cc(255) As Byte
    For i = 0 To 255
    cc(i) = i
    Next i
    MSComm1.Output = cc
    Do
    DoEvents
    Loop Until MSComm1.OutBufferCount = 0
    '接收过程 MSComm1_OnComm()
    Select Case MSComm1.CommEvent
    Case comEvReceive
    Dim Buffer As Variant, b1,i
    MSComm1.InputMode=comInputModeBinery
    MSComm1.InputLen = 0
    Buffer = MSComm1.Input
    For i=LBound (Buffer) To UBound (Buffer )
    Debug.Print Buffer ( i ) ;
    Next i
    Case . . . . .

        3.如何发送0字符(00H,NULL)
    在VisuaI C++中使用串口控件发送0字符有些麻烦,但在VB5.0/6.0中只要注意以下两点即可:
    (1)设置MSComm控件的属性 NullDiscard=False;。
    (2)使用二进制接收,即用 MSComm1.InputMode=ComInputModeBinary便可以解决问题;

        4.如何发送递中文字符串(DBcS字符)
    VB5.0/6.0的各种参考书上均指明MSComm通信控件不能发送或接收双字节字符集系统DBCS)的二进制数据,这对于我国及亚洲一些
    使用DBCS字符集的国家不能不说是一大人遗憾。但是我在实践中发现,用MSComm控件也可以发送中文字符,具体方法有以下两种:
    (1)直接发送
         直接发送即把中文字符等同于英文字符。如:MSComm1.Intput= " 这是一行中文数据!" ,但这种方法发送的中文数据不能太
    长,发送缓冲区和接收缓冲区的大小需设定为中文字符的两倍以上,而且发送与接收系统所处的操作系统版本最好要一致,否则会
    出现接收或发送缓冲区溢出之类的错误。这种方法时用于一般要求不太高的场合。
    (2)间接发送
         在发送端将汉字或字符转换为机器内码或区位码数据数组,然后将咏转换后的数据发送到串口,在接收端接收到数据后,按照
    相反的顺序得到的数据转换为相应的汉字或字符,在转换过程中.要用到位运算,如取得汉字的内码后需要将高字节和低字节分开,
    而VB5.0/6.0中并没有提供此类函数,以下是求整数高、低字节的函数。

    Public Function HiByte(a As Integer )
    Dim b
    b= a And &HFF00
    b = b / 256
    If b<0 Then b = b + 256
    HiByte = b
    End Function

    Public Function LowByte(a As Integ`er)
    Dim b
    b = a And &HFF
    LowByte = b
    End Function

    5.如何用单机进行通信测试
         通常在写好了通信程序后需要两台PC或一台Pc、一台单片机.将通信口连接后进行测试,但很多时侯因条件限制仅有单台PC机,
    测试项目很简单,那么能否测试呢?当然可以,而且方法也很简单。对于九针的串口,找一个废弃的串口鼠标,剥外鼠标线,将连
    接2、3针的线对接即可;对于25针的串口,找一枚曲别针(最好有塑料外套的)将它扯直,剥削去两头的塑料后在两头各弯一个圆
    圈,中间对忻后直接套接在串口的2、3针上即可。如果但心不够安全,则可以将5针按地。
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    关于mscomm的用法,提高篇......[mgwmj]&copy;

    MSCOMM控件是个好东西,如果您能够充分了解他,他会为您衷心的效劳。

        大致看了一下下午有关讨论MSCOMM的话题,觉得有必要说说我的心得,我一般只做硬件,没有系统的学过软件,只是业余时间
    学学用用,多少掌握了一点,也在此拿出来玩玩,不知有错没有,我可是以为我已经做的很好了^_^

    这是一个VB通用串口事件驱动接收程序。一次性接收一个数据包,数据包可以为任意字节,保证不会丢失一个数据!
    Private Sub MSComm_OnComm()
         Dim S() As Byte
         Dim SS(1024) As Byte
         Static N As Long
         Static T As Variant

        If (MSComm.CommEvent = comEvReceive) Then
             S = MSComm.Input                      '只要有数据就收进来,哪怕只是一个
             If (Timer - T > 0.01) Then            '间隔10MS以上就认为是一个新的包
                 text1=""                          'text1用于搜集和显示接收(HEX格式)
                 N = 0
             End If
             T = Timer
             For i = 0 To UBound(S)               '一个数据包可能产生若干个oncomm事件
                 Text1.Text = Text1.Text & Right("0" & Hex(S(i)) & "H", 3) + " "
                 SS(N+i)=S(i)                     '接收数据包缓存于SS()
                 N=N+UBound(S)
             Next i
         End If
    End Sub
    转自AMOBBS

    展开全文
  • VB串口通信技术资料:媒体/源码/论文/书籍/视频/控件/程序 联系QQ:149034219 获取地址:http://item.taobao.com/item.htm?id=17223194202 淘宝地址:http://shop34608724.taobao.com 一、总目录如下所示: ...

    VB串口通信技术资料:媒体/源码/论文/书籍/视频/控件/程序

    联系QQ:149034219

    一、总目录如下所示:
    资料1.VB6.0安装源文件(总共3个文件,大小:979MB)
    资料2.VB串口通信源码(总共210个源码,大小:101MB)
    资料3.VB串口通信技术文章(总共182篇文章,大小:120MB)
    资料4.VB串口通信电子书籍(总共20本书籍,大小:394MB)
    资料5.VB串口通信视频教程(总共86个视频,大小:437MB)
    资料6.VB串口通信控件(总共17个控件,大小:15MB)
    资料7.虚拟串口软件及使用教程(总共2个文件,大小:4MB)
    资料8.串口硬件层知识大全(总共55个文件,大小:22MB)
    资料9.串口调试工具(总共40个工具,大小:15MB)
    资料10.网络基础OSI网络模型教程(总共10个文件,大小:45MB)
    资料11.程序员成长与发展类书籍(总共10个文件,大小:36MB)
    下载资料说明

    二、资料1.VB6.0安装源文件
    001、VB6.0安装盘CD1
    002、VB6.0 SP6 升级盘CD2
    003、VB6.0序列号SN

    三、资料2.VB串口通信源码
    001、VB串口通讯视频教程源码41个
    002、Visual Basic串口通信工程开发实例导航随书源码7个
    003、Visual Basic串口通信与测控应用技术实战详解 源代码(15个全)
    004、GE PLC串口通讯,VB编制,读取内存单元
    005、PC机与51单片机之间的串口通讯,VB编的,分PC和单片机两部分
    006、VB6的串口通信程序,还有crc校验
    007、VB Modbus RTU源码,其中协议部分已生成DLL,可直接调用
    008、VB.net开发的串口调试程序
    009、VB.net实现串口编程,希望大家有用
    010、VB版串口调试程序,包含VB源码及安装文件,适合调试串口
    011、VB编程RS232串口控制DA数模转换
    012、VB编程实现的串口调试工具源码
    013、VB编写的RS232串口通信测试程序,以txt格式接受,可定义发送字符
    014、VB编写的SouthStar串口测试与51串口烧写器V1.0版
    015、VB编写的串口调试助手1.0的源码
    016、VB编写的串口短信发送程序,需要数据线支持
    017、VB编写的串口通信程序,实现多机通信
    018、VB编写的串口通信程序,主要用于上位机与下位机间的通信
    019、VB编写的串口通信程序界面参考网上的程序较简单
    020、VB编写的串口通讯界面,主要面向51单片机的串口通信
    021、VB编写的单片机和PC串口通信的调试程序
    022、VB编写的仿真实电子琴操作界面,包含与FPGA串口通信的功能
    023、VB串口API通讯,附带BAS文件全部源码,实现与饭卡读卡器通讯
    024、VB串口编程,关于上位机的应用,特别适合初级学习VB的学员
    025、VB串口编程调试精灵源码
    026、VB串口编程实现完整的多费率电表读数软件
    027、VB串口程序,,是一个串口使用例程,对初学者有用,特别是工控类的
    028、VB串口传输文本,实现2台PC间的通信,类似简单的聊天工具
    029、VB串口的一个电子称的项目
    030、VB串口调试程序,用于通过串口控制松下空调测试
    031、VB串口调试程序及源码
    032、VB串口调试软件源代码,可以参考修改为其它通讯程序
    033、VB串口调试软件源文件
    034、VB串口控制步进电机程序完整源码
    035、VB串口通信 6路10位AD转换数据采集源程序
    036、VB串口通信,API串口通信模块源码
    037、VB串口通信,适用简单,适合初学者
    038、VB串口通信操作界面,进行数据采集,画实时曲线
    039、VB串口通信程序,可以读取串口并显示保存数据,且能显示数据曲线
    040、VB串口通信的源码,学习的好资料
    041、VB串口通信调试器的源码程序
    042、VB串口通信设计视频演示源码
    043、VB串口通信示例
    044、VB串口通信数据源码
    045、VB串口通信之串口接收程序
    046、VB串口通讯测试源代码,有文本和图形两种端口数据观察方式
    047、VB串口通讯程序,用来跟单片机通讯
    048、VB串口通讯代码(部分)
    049、VB串口通讯的参考源程序
    050、VB串口通讯实例 高精度电压表(24bit) VB源程序
    051、vb串口通讯示例
    052、VB串口与伺服电机DSP2407通讯完整代码源程序
    053、VB串口源码,动力电池检测数据采集,内含电导巡检模块通讯报文,可,读写,保存,备份数据
    054、VB串口字节通信程序,包括:1字节发送子程序,n字节接收子程序
    055、VB串行口通信测试示例
    056、VB串行通信试验程序
    057、VB的MODEM通信源代码,智能化水电远端数据读取系统
    058、VB的串口源程序,包括串口的配置界面,接收功能和发送功能
    059、VB访问串口,并读取电子秤上显示的数据
    060、VB和西门子S7-300 PLC串口通讯程序能实现读写功能
    061、VB检测串口工作状态
    062、VB简单的串口短?攀辗⒐δ?,使用短信猫测试通过
    063、VB开发串口通信,关于生物医学工程专业的血氧饱和度的设计
    064、VB开发串口通信软件,利用按钮控件控制高清晰数字展示台
    065、VB开发的RS232串口图像处理器驱动(摄像头驱动)
    066、VB开发的串口通信源码
    067、VB开发的串口与三菱FX PLC通讯源码
    068、VB控制串口232通讯,对飞利浦M1卡内数据进行处理,支持密码修改等
    069、VB利用Mscomm控件编写的通讯终端,可做串口通讯编程参考示例
    070、VB平台单片机与PC机串口通信的PC端程序。小巧易用,功能丰富
    071、VB嵌入式串口通讯波形分析显示软件
    072、VB实现串口调试LED信息显示屏设备主要代码
    073、VB实现串口调试工具的完整源码
    074、vb实现串口通信 文件传送系统,用vb以及mscomm控件实现
    075、VB实现串口通信,发送命令从而接收相应数据
    076、VB使用mscom控件实现PC机与单片机串口通信
    077、VB通过COM串口读取条形码设备
    078、VB通过串口控制单片机读写24C02源代码
    079、VB通讯程序,连接串口可在电脑显示来电号码
    080、VB下的串口发短信程序,可选择端口,设置短信中心号码
    081、VB写的串口通信,发送和接收实例
    082、VB写的串口通信分析程序源码
    083、VB写的串口通讯,通过串口对单片机进行控制
    084、VB写的串口通讯软件,简单易学,适合初学者
    085、VB写的通过串口与考勤机连接通讯的程序
    086、vb用控件的写的串口程序,是vb的经典之作
    087、VB与USB转串口的通讯完整程序,有详细说明,不需要安装驱动
    088、vb与串口通信的关于回路测试的小程序很实用
    089、vb语言开发的串口通信,可实现拨号传送文件等
    090、VB中串口事件处理函数的示例
    091、VB中的串口通讯,串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用
    092、VB自动枚举系统串口加摄象头图象采集,坐标系变换
    093、Visual Basic2005与自动化系统监控(串并行控制)光盘
    094、Visual Basic .NET自动化系统监控随书光盘
    095、Visual Basic串口通信工程开发实例导航随书源码
    096、傲慢与偏见版VB串口通讯实例
    097、把网络内的所有串口服务器查找到并列表显示
    098、编写VB程序来访问串口,达到读取电子秤上显示的数据
    099、串口测试程序,vb环境开发,适合与做单机的串口通信编程测试
    100、串口调试软件,Vb可发送和接收ASCII码和16进制的数据
    101、串口脚踏开关模拟小程序,VB源码,用于医疗行业
    102、串口设置程序公用对话框源代码VB版
    103、串口通信数据,VB编写,可以用于一般的开发
    104、单片机通过DS18b20采集温度,发送给PC机,PC采用VB编程,VB接收单片机串口输入画图
    105、电力机车牵引变压器试验站总控程序,VB开发,Access数据库,通过串?谟胛髅抛?200系列PLC通信
    106、动态显示温度曲线串口传输数据,可以设定波特率,停止位和串口选择
    107、分别用API和MSCOMM控件实现VB串口通信的实例
    108、该程序采用VB编能简单的实现对串口的读写功能
    109、该程序可以用来实现串口通信,程序的可读性很强
    110、该文件实现了串口自发自收
    111、高精度电压表(24bit) VB源程序
    112、和手机通讯的VB例程,采用串口,VB编程,用于业余编程爱好者测试使用
    113、基于CAN总线的模拟量输入 VB 串口编程
    114、基于VB串口通信BY-100交流伺服监控软件源码
    115、基于VB串口通信的空气监控系统源码
    116、基于VS2005开发的串口操作软件(VB)
    117、计数秤采样VB源程序
    118、计算机网络实验,串口通讯,用vb编写,功能完善
    119、计算机与CM320模块通信,只是简单的一点,利用AT命令,串口,VB编写!比较粗糙
    120、简单的VB串口通信示例
    121、考勤管理系统源码(VB含串口接口程序)
    122、可显波形的VB串口调试工具源码
    123、可以显示数据波形的VB串口通讯源代码
    124、利用VB COMMCOM控件读串口数据源码
    125、利用上位机(VB)界面,控制下位机(单片机)彩灯运行
    126、巧用VB.net编写串口程序
    127、三菱FX系列PLC编程口通讯和VB源程序范例
    128、实现计算机串口通信,用vb编写,可以实现很好的功能
    129、使用adc0809进行电压采集,vb虚拟串口通信
    130、使用VB控制三菱E700变频器运行程序样例
    131、手机接到电脑的串口,运行软件即可进行接收和发送短信
    132、水晶打磨控制系统,VB写的串口程序,能够将输入数据通过串口以16进制发送,同时从串口接收数据
    133、通过vb与三菱PLC通信
    134、通过串口测试温度的上位机(?缒远?)程序源代码和打包文件
    135、投影机双串口控制程序
    136、完整的VB与西门子MicroMaster440变频器通讯的上位机程序源码
    137、西门子S7-200系列PLC上位机通信VB经典源码
    138、现有电子秤一台,使用串口与计算机进行通讯
    139、一个USB接口温度计,VB串口通信实例
    140、一个非常好的VB串口通信控制程序
    141、一个简单的VB串口发送程序(源码)
    142、一个用VB编写的基于串口通信的煤矿瓦斯远程监测系统程序
    143、一款不错的VB.net串口使用例程
    144、一款利用VB编写的串口通讯程序,电力线载波数据通讯测试系统
    145、用VB编写的HD 6P RFID发卡器、考勤卡钟串口通讯接口程序
    146、这是一个vb编写的利用串口进行通信的程序,用于生产线上检测export机器功能是否正确
    147、这是一个通过手机串口实现短信发送的实例,采用pdu编码方式,VB开发语言实现的
    148、自己写的通过串口和单片机通讯的ic卡读卡程序
    149、Visual Basic程序设计步骤
    150、基于板卡的模拟量输入程序设计
    151、基于板卡的模拟量输出程序设计
    152、基于板卡的开关量输入程序设计
    153、基于板卡的开关量输出程序设计
    154、基于板卡的计数器输入程序设计
    155、基于板卡的脉冲量输出程序设计
    156、基于板卡的温度测量与控制程序设计
    157、PC机与PC机串口通信程序设计
    158、PC机与单片机串口通信程序设计
    159、PC机与智能仪器串口通信程序设计
    160、PC机与PLC串口通信程序设计
    161、PC机与读卡器串口通信程序设计
    162、PC机与GSM短信模块串口通信程序设计
    163、PC机与调制解调器串口通信程序设计
    164、PC机与云台控制系统串口通信程序设计
    165、PC机与电机驱动系统串口通信程序设计
    166、PC机与常用测试仪器串口通信程序设计
    167、PC机与智能仪器构成的DCS程序设计
    168、PC机与远程IO模块构成的DCS程序设计
    169、PC机与CAN总线模块构成的DCS程序设计
    170、PC机与IIC总线模块构成的网络程序设计


    四、资料3.VB串口通信技术文章
    001、51单片机与VB串行通信的实现
    002、AB_PLC_和VB客户端的通讯
    003、AT89C51串口通讯教程
    004、AT89C52单片机与VB串行通信的实现
    005、MODBUS-RTU CRC校验码计算 VB源代码
    006、MSComm 控件使用详解
    007、MSComm控件实现中文Win 9x下的通信
    008、PC 机与PLC串行通信的实现
    009、PC机双机串行通信简明实例
    010、PC与PLC串行通信在VB6.0下的功能实现
    011、PIC单片机与PC机异步串行通信的设计
    012、plc串口通讯调试Visual Basic串口通讯调试思路方法
    013、RS-232接口与单片机串行通信程序设计
    014、VB6.0在PLC与上位机通讯中的应用
    015、VB6.0在台安PLC与上位机通讯中的应用
    016、VB6使用API实现串口通信
    017、VB2005串口通讯与 VB6.0的区别
    018、VB MSComm控件下串行通信在电子衡器中的应用
    019、VB Mscomm控件应用
    020、VB.Net RS232串行通信AutoReceive-Timer的实例
    021、VB.Net RS232串行通信AutoReceive的实例
    022、VB.Net RS232串行通信DI2DO的实例
    023、VB.Net RS232串行通信DigitalInput的实例
    024、VB.Net RS232串行通信DigitalOut的实例
    025、VB.Net RS232串行通信FlashDO的实例
    026、VB.Net RS232串行通信LoopTest的实例
    027、VB.Net RS232串行通信UseKeyPress的实例
    028、VB.Net RS232串行通信UserDefineOutput的实例
    029、VB.NET串口编程
    030、VB.Net串口通讯的实例
    031、VB.Net串行通信2236-Cmd的实例
    032、VB.Net串行通信2236-Plot的实例
    033、VB.Net串行通信2236-SLM的实例
    034、VB.Net串行通信ControlPort的实例
    035、VB.Net串行通信DataControl的实例
    036、VB.Net串行通信DataPort的实例
    037、VB.Net串行通信FlashLight的实例
    038、VB.Net串行通信LPTDI2DO的实例
    039、VB.Net串行通信LPTDigitalInput的实例
    040、VB.Net串行通信LPTStatus的实例
    041、VB.Net串行通信PowerSupply的实例
    042、VB编写RS232串口程序向下位机单片机发送数据的问题
    043、VB编写的Modbus_RTU协议通讯源程序
    044、VB程序实现西门子s7-200PLC ppi通讯
    045、VB串口编程的几个问题
    046、vb串口使用心得两则
    047、VB串口通信
    048、vb串口通信编程
    049、vb串口通信程序
    050、vb串口通信控件-mscomm
    051、VB串口通信数据采集
    052、VB串口通信源程序
    053、vb串口通讯串口通讯及其在VB平台下的实现
    054、VB串口通讯方式解释
    055、VB串口通讯应用举例
    056、VB串口通讯与开关量的检测与输出
    057、VB串口详解
    058、VB的台达PLC与监控计算机的串行通信实现
    059、VB环境下计算机与全站仪的数据通讯方法
    060、VB环境下实现PC机与单片机(8031)的串行通讯
    061、vb进行串口读写入门
    062、VB控件MSComm串口通讯实例教程
    063、VB实现PC对单片机LED灯的控制
    064、VB实现PC与单片机串口通信
    065、VB实现PLC与计算机间的串行通信
    066、VB实现串口通讯
    067、VB实现的实时曲线的绘制
    068、vb实现多通道串口采集
    069、VB实现在PC上通过手机发短消息
    070、vb与plc通讯(以西门子S7-200为例)
    071、VB与三菱FXPLC通讯的实现
    072、VB与三菱FX系列PLC在SC-09下的通信
    073、VB与台达触摸屏通信的实现
    074、VB中串口通讯的实现
    075、VB中使用Pcomm_Pro软件实现多端El远程通信
    076、Visual Basic串口通信程序设计
    077、Visual Basic串口通讯调试方法
    078、VisualBasical6_0中通信控件的应用
    079、win32下的几种串口通信编程
    080、Windows xp下单台PC与多台变频器的串行通信控制
    081、Windows 环境下PC 机与PC104 的串行通讯控制
    082、Windows环境下的串行数据通信程序设计
    083、捌用VB编写串口通信程序
    084、采用VB实现组态软件与下位机的串行通信方法研究
    085、采用串口通信技术实现Modbus数据通信
    086、称量控制仪表与计算机的数据通信
    087、串口调试程序.NET编写串口程序感悟
    088、串口通信编程大全
    089、串口通讯的概念及接口电路
    090、串口通讯调试器用VB调试串口通讯-vb教程
    091、串口通讯及其在VB平台下的实现
    092、串行口通信技术
    093、串行通讯技术在IC卡售饭系统中的应用
    094、单片机RS232与VB通信
    095、单片机串口通信
    096、单片机的串行通信接口技术探讨
    097、高级语言的串行通信编程
    098、关于MSCOMM控件的一些说明
    099、关于使用VB与单片机通信
    100、基于FX BD 的FXPLC 串口通信DLL 的实现
    101、基于MODBUS协议的串口控件的实现
    102、基于VB6.0的MSComm通信方法设计
    103、基于VB6.0的串行通信中的错误预防方法
    104、基于VB6.0的工控机与智能流量积算仪的串口通信
    105、基于VB6.0的西门子PLC与PC的通信实现微机监控功能
    106、基于VB6.0和单片机下串行通信技术的应用开发
    107、基于VB6[1].0的S7-200PLC与计算机的通讯设计
    108、基于VB6[1].0的单片机与PC通讯的实现与应用
    109、基于VB 6.0串口通信的气压测高系统数据采集实现
    110、基于VB 6.0与单片机串行通信的数据采集系统设计
    111、基于VB 的实时数据采集程序设计
    112、基于VB的PLC与计算机串行通信在磨床控制上的应用
    113、基于VB的SR830锁相放大器与PC机间串行通讯设计
    114、基于VB的电子线路板自动测试系统设计
    115、基于VB的分布式监控系统通信设计
    116、基于VB的计算机与三菱变频?魍ㄑ都凹嗫厝砑纳杓?
    117、基于VB的上位机与PLC的串行通信
    118、基于VB的实时数据采集程序设计
    119、基于VB及台达触摸屏的监控系统在纺机中的应用
    120、基于VB实现PC机与单片机的串行通讯
    121、基于VB液位控制系统上位机串行通讯的实现
    122、基于VB与单片机串行通信的数据采集系统设计
    123、基于Visual Basic的计算机与单片机串口通信研究
    124、基于单一电源的多机通信的研究与实现
    125、计算机二级VB基础VB串口的基础知识
    126、金相切割机PC-PLC 串行通信的实现
    127、利用VB6.0与莱恩达的智能模块实现通讯设计
    128、利用VB 6.0实现PC机与DSP之间的串行数据通信
    129、利用VB 6.0实现网络远程PC与单片机通信
    130、利用VB.NET实现BC8000与PC串口通信
    131、利用VB和三菱FX_PLC开发小型自控系统
    132、利用VB实现PC机与多单片机远程无线通讯
    133、利用VB制作控制系统上位机仿真监控软件
    134、利用Visual Basic 实现无线通讯
    135、浅谈基于MSComm控件实现VB 串口通信
    136、浅析PC机串口通讯流控制
    137、如何通过计算机串口仿真PLC串口
    138、如何用VB实现Modbus串行通讯
    139、如何在串口通讯程序中处理数据包
    140、三菱PLC与上位机串行通信的实现
    141、实现PC机与单片机的串行通信
    142、使用VB开发Windows?肪诚碌拇型ㄐ懦绦?
    143、台达VFD-L型变频器与计算机的串口通信
    144、微机串行通信协议研究
    145、微机通过串口对工业仪表进行实时数据采集
    146、温控系统中VB 实现的PC 机与单片机串行通迅
    147、亚当模块数据采集系统VB6.0的实现
    148、永宏基于调制解调器与VB的PLC远程通讯系统设计
    149、用VB6_0实现上位机对多个PLC的监控
    150、用VB6实现仪器串口通信及检测功能
    151、用vb开发双微机资源管理程序
    152、用vb开发通信软件 VB
    153、用VB实现CPM1A与计算机间的串行通信
    154、用VB实现计算机与单片机的串行通信
    155、用VB实现上位机与RFID控制器的串行通信
    156、用Visual Basic 实现串口通信的三种方法
    157、用于视频监视的云台镜头系统串行通信的实现
    158、运用Visual Basic实现PC与89C51单片机之间的串行通信
    159、在VB下用串口通信实现无线通信的方法
    160、制冷系统数据采集及二次处理软件的开发
    161、01 计算机测控系统概述
    162、02 计算机操作系统
    163、03 面向对象语言Visual Basic
    164、04a 监控组态软件Kingview
    165、04b  监控组态软件Kingview
    166、05 虚拟仪器软件LabVIEW
    167、06 IO接口
    168、07 串口通信技术
    169、08 智能仪器
    170、09 传感器
    171、10 工控机(IPC)
    172、11 PLC
    173、12 信息传输介质
    174、13 执行机构
    175、14 单片机
    176、15 集散控制系统
    177、16 现场总线控制技术
    178、17 数据采集卡
    179、18 总线及其标准
    180、19 过程通道
    181、20 计算机测控系统的设计
    182、21 计算机测控技术在农业生产中的应用(棉花滴灌自动化)

     

    五、资料4.VB串口通信电子书籍
    001、C#与VB.NET网络通信开发实战
    002、FX系列PLC的链接通信及VB图形监控
    003、RS-232和调制解调器高级通信编程
    004、Serial Port Complete 2nd Edition.Dec.2007
    005、VB 6.0高级编程技巧-多媒体通信篇
    006、VB与RS-232串行通讯控制(旧版)
    007、VB与RS-232串行通讯控制(新版)
    008、Visual Basic 串口通讯编程
    009、Visual Basic串口通信工程开发(上)
    010、Visual Basic串口通信工程开发(下)
    011、Visual Basic串口通信工程开发实例导航
    012、Visual Basic与分布式监控系统
    013、Visual Basic与数字输入输出适配卡控制
    014、Visual+Basic串口通信与测控应用技_1187746...
    015、Win32串口编程
    016、串口编程介绍(英文版)
    017、数据通信与网络教程
    018、数字通信原理与技术
    019、《Delphi数据采集与串口通信测控应用实战》前言
    020、《Delphi数据采集与串口通信测控应用实战》详细内容

    六、资料5.VB串口通信视频教程
    001、vb串口通讯视频教程第2章_1-?际褂胿b
    002、vb串口通讯视频教程第2章_2-vb的设计步骤
    003、vb串口通讯视频教程第3章_1-commevent与事件
    004、vb串口通讯视频教程第3章_2-如何?猛ㄐ趴丶?
    005、vb串口通讯视频教程第3章_3-回路测试
    006、vb串口通讯视频教程第3章_4-通信步骤
    007、vb串口通讯视频教程第3章_5-数字输出
    008、VB串口通讯视频教程第3章_6-数字输入
    009、VB串口通讯视频教程第3章_7-硬件线路事件
    010、VB串口通讯视频教程第3章_8-字节测试
    011、VB串口通讯视频教程第3章_9-自动读取
    012、VB串口通讯视频教程第4章_1-字符测试
    013、VB串口通讯视频教程第5章-1-控制饲服器
    014、VB串口通讯视频教程第5章-2-数据饲服器
    015、VB串口通讯视频教程第5章-3-数据饲服器-字节
    016、VB串口通讯视频教程第5章-4-数据请求端
    017、VB串口通讯视频教程第5章-5-图形显示
    018、VB串口通讯视频教程第5章-6-图形显示-字节
    019、VB串口通讯视频教程第5章-7-信号灯显示
    020、VB串口通讯视频教程第5章-8-信号灯显示-字节
    021、VB串口通讯视频教程第6章-1-调制解调器的控制
    022、VB串口通讯视频教程第6章-2-调制解调器的联机
    023、VB串口通讯视频教程第6章-3-调制解调器的专线设计
    024、VB串口通讯视频教程第7章-1-PComm事件
    025、VB串口通讯视频教程第7章-2-PComm数据发送与接收
    026、VB串口通讯视频教程第7章-3-PComm文件传输
    027、VB串口通讯视频教程第7章-4-PComm数字输入输出
    028、VB串口通讯视频教程第7章-5-PComm超级终端的使用
    029、VB串口通讯视频教程第7章-6-PComm数据监视器
    030、VB串口通讯视频教程第7章-8-PComm与调制解调器
    031、VB串口通讯视频教程第8章-1-2236噪音计的控制
    032、VB串口通讯视频教程第8章-2-2236字符串处理
    033、VB串口通讯视频教程第8章-3-2525振动计的控制
    034、VB串口通讯视频教程第8章-4-3569A分析仪的控制
    035、VB串口通讯视频教程第8章-5-RM-10H记录器
    036、VB串口通讯视频教程第8章-6-电表-2420
    037、VB串口通讯视频教程第8章-7-电功率计
    038、VB串口通讯视频教程第8章-8-读条码机
    039、VB串口通讯视频教程第8章-9-转速计
    040、VB串口通讯视频教程第9章-1-读取配置
    041、软件交互的程序
    042、硬件交互的计算机端较慢时
    043、硬件交互的设备端较慢时
    044、2.2  Visual Basic程序设计步骤(声音解说)
    045、3.5.1 板卡设备管理程序DevMgr.exe安装(声音解说)
    046、3.5.2 板卡驱动程序PCI1710 Driver.exe安装(声音解说)
    047、3.5.3 PCI1710HG板卡安装(声音解说)
    048、3.5.4 查看PCI1710HG板卡属性(声音解说)
    049、3.5.5 配置PCI1710HG板卡(声音解说)
    050、3.5.6 测试PCI1710HG板卡(声音解说)
    051、3.6.2  ActiveDAQ控件的安装(声音解说)
    052、4.0 数据采集控件的添加(声音解说)
    053、4.1  基于板卡的模拟量输入程序设计
    054、4.2  基于板卡的模拟量输出程序设计
    055、4.3  基于板卡的开关量输入程序设计
    056、4.4  基于板卡的开关量输出程序设计
    057、4.5  基于板卡的计数器输入程序设计
    058、4.6  基于板卡的脉冲量输出程序设计
    059、4.7  基于板卡的温度测量与控制程序设计
    060、5.2.4 个人计算机中的串行端口(声音解说)
    061、5.6.1 串口通信调试(PC与PC串口通信)(声音解说)
    062、5.6.2 串口通信调试(PC与智能仪器串口通信)(声音解说)
    063、5.6.3  虚拟串口
    064、6.0 串口通信控件的添加(声音解说)
    065、6.1.5.1  利用MSComm控件实现字符型数据发送与接收
    066、6.1.5.2  利用API函数实现字符型数据发送与接收
    067、6.1.5.3  利用MSComm控件实现PC机双串口互通信
    068、6.2.5.1  利用Keil C51实现单片机与PC机串口通信任务1
    069、6.2.5.1b  单片机C51程序烧写过程
    070、6.2.5.2  利用VB实现PC机与单片机串口通信任务1
    071、6.2.5.3  利用Keil C51实现单片机与PC机串口通信任务2(方法1)
    072、6.2.5.4  利用VB实现PC机与单片机串口通信任务2(方法1)
    073、6.2.5.5  利用Keil C51实现单片机与PC机串口通信任务2(方法2)
    074、6.2.5.6  利用VB实现PC机与单片机串口通信任务2(方法2)
    075、6.3  PC机与智能仪器串口通信程序设计
    076、6.4.5.1  PC与西门子S7-200PLC串口通信
    077、6.4.5.2  PC与三菱FX2N-32MRPLC串口通信
    078、6.5  PC机与读卡器串口通信程序设计
    079、6.6  PC机与GSM短信模块串口通信程序设计
    080、7.5  PC机与智能仪器构成的DCS程序设计
    081、7.6.3.1 设备管理程序DevMgr.exe安装
    082、7.6.3.2 ADAM设备驱动程序DLL.exe安装
    083、7.6.3.3 ADAM应用配置程序Utility.exe安装
    084、7.6.3.4 ADAM4000模块配置
    085、7.6.3.5 添加ADAM4000设备及测试
    086、7.6.4  PC机与远程IO模块构成的DCS程序设计

     

    七、资料6.VB串口通信控件
    001、.Net串口读写控件,用VB.Net写成
    002、ModbusActiveXControlV2.02
    003、ModbusRtu
    004、MSCOMM32
    005、PC与FX系列PLC通讯DLL
    006、scoComm非常好的串口控件,OCX的,可支持到波特率921600,串口好到256,对于做手机及USB的通信将是非常好的工具
    007、SerialComOCX ,vb串口通讯用的控件
    008、smscontrol通过手机串口发送短信的VB控件代码,在NOKIA等手机上已经通过测试.
    009、VB.net 串口控件 activeport 串口控件 內涵安裝檔及keygun
    010、vb控件,中间加载了spcom系统控件内容,主要用于控制串口
    011、串口控件程序(可以用到VC++,VB,DELPHI开发)-
    012、短信控件,无限制版。重要用于串口手机发送短信
    013、基于事件驱动的串口通讯控件
    014、三菱FX系列PLC通讯DLL
    015、停车, 物业,刷卡,串口通信,用户控件,自动刷新
    016、一个串口控件,用在几个大型的系统上都很好用
    017、用VB开发的对GPRS-MODEM控件的简单使用,GPRS-MODEM一般工作在串口,速率为115200 可以收发短信
     
    八、资料7.虚拟串口软件及使用教程
    001、Eltima.Virtual.Serial.Ports.Driver.XP
    002、虚拟串口软件VSPD XP5.1使用教程

    九、资料8.串口硬件层知识大全
    001、RS232,485,422_通讯原理
    002、RS232,RS422,RS485的区别
    003、RS232_转USB_方案DIY资料,已做成功
    004、RS232C、RS422RS485串行通信标准
    005、RS232C接脚与对连线
    006、rs232串口通信大全
    007、RS232的故障排??
    008、RS232技术详解
    009、RS232接口介绍资料详解_什么是rs232接口
    010、RS232接口转USB接口的通信方法
    011、RS232通信程序设计
    012、RS232协议标准详解
    013、RS232与RS485接口功能、区别
    014、RS422_RS485技术标准[1].pdf
    015、RS485_总线应用与选型指南
    016、RS485传输可靠性
    017、RS485简介
    018、RS485抗干扰待整理
    019、RS485设计指南
    020、RS485通讯的理论和实践
    021、RS485通讯协议
    022、RS485通讯协议介绍
    023、rs485总线标准
    024、RS485总线的隔离及稳定性解决办法
    025、RS485总线入门知识
    026、RS-232、RS-422与RS-485标准及应用
    027、RS-485总线通信系统的可靠性措施
    028、USB2[1].0技术规范(中文)
    029、USB2[1].0走线要点
    030、USB3[1].0
    031、USB3[1].0
    032、USB3[1].0_静电放电防护的最佳解决方案
    033、USB_TO_RS232_RS485_UART转接板电路原理图(1)
    034、USB_串口通信产品的发展
    035、USB百科
    036、USB的工作原理
    037、USB的系统组成
    038、USB电气特性
    039、USB接口技术
    040、USB设备的福音+USB3[1][1].0发展历史与展望
    041、USB序言
    042、USB转RS232双串口电路图
    043、串口通信详解
    044、单工,半双工,全双工的含义及区别
    045、关于RS232RS422RS485串行通讯的相关资料
    046、汇总整理RJ45 RS232 USB三种接口的详细资料、接驳方式及接口的制作方法与传输方式
    047、全双工RS485总线发送机制的研究
    048、通信技术基础_区别_协议标准_串并行_同异步_全双工_波特率_比特率
    049、详解工业PC接口中文带图
    050、有关RS232和RS485接口的问答
    051、自制RS232接口转串口电路
    052、USB通信协议
    053、USB通用串行总线
    054、串行通信
    055、电平转换芯片MAX3232

    十、资料9.串口调试工具
    001、AccessPort 1.33
    002、Awen串口调试助手 4.0
    003、BOAST串口调试工具Ver3.69
    004、COMDEBUG共享版
    005、ComFilter V2.0
    006、Commix V1.4
    007、ComTone 串口调试工具V1.0
    008、FCom V3.0串口工具
    009、JCBus串口调试助手
    010、OCTOPUS
    011、PCommAPI V1.5
    012、PLC串口通信调试 1.0
    013、TSerial V0.6
    014、超级串口调试器2007 Ver2.1.0.0102
    015、串口测试程序
    016、串口大师(ComMaster)V1.1
    017、串口调试伴侣V2.0
    018、串口调试工具
    019、串口调试精灵 V1.023
    020、串口调试器 1.0
    021、串口调试器 2002
    022、串口调试软件4.5
    023、串口调试小助手1.3
    024、串口调试助手 3.0
    025、串口调试助手(CM精装版) 3.6
    026、串口调试助手ScomAssistant V2.2
    027、串口短信大师 v1.5
    028、串口通信测试工具
    029、串口通信调试器
    030、串口网络调试工具专业版V2.0
    031、串口文件自动发送接收系统 1.0
    032、串口助手
    033、串行口调试工具V1.0
    034、带crc的串口调试软件 1.0
    035、多串口调试工具2.1.3.52
    036、简便串口测试 1.0
    037、捷通串口调试软件 4.0
    038、数据校验助手[工控通讯版]CRC16 LRC校验
    039、双串口调试助手V2.0
    040、泰康串口大师 1.0.5

    十一、资料10.网络基础OSI网络模型教程
    001、OSI_model
    002、OSI参考模型
    003、OSI七层参考模型内部教材V2[1].2(华三通信)
    004、OSI七层模型基础知识及各层常见应用
    005、不再困惑_互联网OSI七层模型全解析
    006、高级网络技术-OSI_Model(思科教材)
    007、互联网OSI七层模型全解析
    008、计算机网络第五版
    009、美河制作.六个月成为网络专家.网络基础.osi参考模型(下)
    010、网络基础与OSI参考模型培训(华为)

    十二、资料11.程序员成长与发展类书籍
    001、程序员的好习惯
    002、程序员法则
    003、程序员面试宝典
    004、程序员面试攻略
    005、程序员日常规范
    006、程序员羊皮卷下载版
    007、疯狂的程序员(PDF)
    008、高效程序员的45个习惯
    009、经典程序员保健操动作解剖图片
    010、卓有成效的程序员PDF版

     

    展开全文
  • VB 串口编程 开发心得

    千次阅读 2017-07-27 08:21:27
    接触vb串口控件也有一段时间了 经常被它弄得晕头转向 最重要的是死机 死机 死机 其實關鍵在於 寫好接收函數 现将自己的经验写下来供大家参考 1,使用串口   (1)臺式機自帶串口  (2)USB----...
    接触vb的串口控件也有一段时间了
    经常被它弄得晕头转向
    最重要的是死机  死机  死机  
    其實關鍵在於 寫好接收函數
    现将自己的经验写下来供大家参考


    1,使用串口

     

    (1)臺式機自帶串口  

    (2)USB-------- RS232(RS485)         

    (3)PCI ----RS232

     

     

     

     

     

    適合一般對串口數需求小的通信

    適合筆記本使用或串口不夠用外擴

    適合工控使用(現正在使用的8口串口)

     

     

     

    2,注意事項:上電,中斷,協議

    1,下位機中單片機控制的232晶片,在上電後會自動發送FF  FE  FC   00  01   03等隨機通信數據給電腦串口 ,如果不處理好,在上電時就會出現數據異常或通信錯誤

    2,vb編程時儘量不要使定時器和串口中斷會同時發生的情況出現

    3,通信中儘量使用協議,自定義的協議或標準協議,例如接收超時的規定

     

     

     

    3,編程

    Vb中對串口的操作無非就是

    設置串口屬性,讀取串口屬性,讀取串口數據,發送數據

    流程為:設置埠號—設置通信模式,串列傳輸速率,閥值等---清空緩衝區數據----打開串口

    下麵一一介紹

    讀取,設置串口屬性

    屬性

    說明

    (Name)

    MSComm控制項的名稱

    (自定義)

    打開屬性頁

    CommPort

    獲得或設置通訊埠號

    DTREnable

    決定在通訊過程中是否使資料終端機狀態線有效。取值為:
    True
    False

    EOFEnable

    獲得或設置是否搜索EOF字元。取值為:
    True
    False

    Handshaking

    獲得或設置軟體的握手協定。取值為:
    0 comNone
    1 comXOnXoff
    2 comRTS
    3 comRTSXOnXOff

    InBufferSize

    獲得或設置接收緩衝區的大小,以位元組數為單位。

    Index

    在物件陣列中的編號

    InputLen

    獲得或設置輸入屬性從接收緩衝區讀出的字元數。

    InputMode

    獲得或設置輸入屬性檢索的資料類型。取值為:
    0 comInputModeText
    1 comInputModeBinary

    Left

    距離容器左邊框的距離

    NullDiscard

    決定是否將空字串從埠傳送到接收緩衝區。取值為:
    True
    False

    OutBufferSize

    獲得或設置傳輸緩衝區中的字元數

    ParityReplace

    獲得或設置當出現奇偶校驗錯誤時,用來替換資料流程中無效字元的字元。

    RThreshold

    獲得或設置要接受的字元數。

    RTSEnable

    決定能否使行有效。取值為:
    True
    False

    Settings

    獲得或設置串列傳輸速率、奇偶校驗、資料位元和停止位元參數。

    SThreshold

    獲得或設置傳輸中所能允許的最小字元數

    Tag

    存儲程式所需的附加資料

    Top

    距容器頂部邊界的距離

     

     

     

     

    設置串口:

    PrivateFunction com1_init(com_no As Byte)

    OnError GoTo err

    IfMSComm1.PortOpen = True Then MSComm1.PortOpen = False

    MSComm1.CommPort= com_no

    IfMSComm1.PortOpen = False Then

            MSComm1.Settings ="9600,n,8,1"

            MSComm1.RThreshold = 1      '******核心語句,去掉則無法觸發,來一個字節數據就中斷

            'MSComm1.SThreshold = 1      '發送緩衝區中允許的最小字元數觸發

            MSComm1.OutBufferSize = 10   ‘發送緩衝區大小字節

            MSComm1.InBufferSize = 10     ‘發送緩衝區大小字節

            MSComm1.InputLen = 1         '每次從緩衝區讀取數據的字節數

            MSComm1.InputMode =comInputModeBinary   '二進制模式

            'MSComm1.InputMode =comInputModeText     ‘文本模式

            MSComm1.InBufferCount = 0    '清空接收緩衝區數據

            MSComm1.PortOpen = True     '打開串口

    EndIf

    ExitFunction

    err:

    MsgBox"串口打開失敗"

    EndFunction

     

     

     

     

     

    接收,發送數據

    (1)  兩種模式下的數據收發


    1------------------------------二進制模式:以二進制模式收發,比如發送0XFE                 注:發送時使用數組發送


    MSComm1.InputMode= comInputModeBinary   '二進制模式

    發送數據函數

    Dim cc(0) As Byte

    cc(0) = mydata

    MSComm1.Output = cc

    接收數據函數(接收一個字節的數據,也就是說來的數只有8位)

    MSComm1.InputLen= 1   每次从缓冲区讀出來1個數(8位為一個,也可以自己定義接收多個)

    Private Sub MSComm1_OnComm()

    Dim Instring As Byte

    On Error GoTo err

    Select Case MSComm3.CommEvent

        CasecomEvReceive

        DimInByte, i As Integer

       InByte = MSComm3.Input

        Fori = 0 To UBound(InByte)

      Instring = Instring & (InByte(i))

        Next

    End Select

    End Sub

     

     

     

    接收函數(一次接收多個字節的這樣寫)

    MSComm1.InputLen= 0   每次从缓冲区讀出來所有數據

    Dim counter As Byte

    counter = MSComm1.InBufferCount

    If counter > 0 Then

        DimReceiveArr() As Byte

        Dimj, Instring As Integer

       ReceiveArr = MSComm1.Input     ‘把得到的數據放在一個數組中

       

        Forj = 0 To (counter - 1)

       Instring = ReceiveArr(j)     ‘循環查看得到的每一個數

        IfVal(Instring) = 1 Then Text1.Text = Text1.Text + "ok "

        Nextj

    Else

    End If

     

     

     

     

    2------------------------文本模式:發送和接收的都是ascii形式的字串,比如我可以發送’S’給output


    'MSComm1.InputMode= comInputModeText     ‘文本模式

    MSComm1.InputLen= 0   每次接收緩衝區的所有字符串

    發送函數dim outstring as string     MSComm1.Input= outstring

    接收函數

    Private Sub MSComm1_OnComm()

    Dim Instring   ‘也可以定義成string類型

    On Error GoTo err

    Select Case MSComm1.CommEvent

       Case comEvReceive

      Instring = MSComm1.Input

    End Select

    err:

    End Sub

     

     

     

     

     

    (2)   接收數據的方法(重要)

    1中斷

    2查詢(1)

    3查詢(2)

    4中斷+查詢

    MSComm1.RThreshold =n

    來n個數馬上產生中斷

    MSComm1.RThreshold = 0

    關閉中斷觸發

    MSComm1.RThreshold = 0

    關閉中斷觸發

    MSComm1.RThreshold = n

    來n個數馬上產生中斷

    在中斷函數中讀取接收到的數據

    Private Sub MSComm1_OnComm()

    你的代碼

    End Sub

     

     

    使用定時器,每隔10ms或其他時間段,就查詢是否接收到數據了,沒有則退出,有則讀取數據

    Dim counter As Byte

    counter = MSComm1.InBufferCount

     

    適合超時檢測用

    先發送

    延時

    檢測是否接收到了

    Dim counter As Byte

    counter = MSComm1.InBufferCount

     

    在中斷發生時,在中斷函數中,延時或使用其他方法進行查詢

     

     

     

     

     

    4,特殊通信

     

    大於255的數,小數,modbus通信,回車換行

     

    大於255的數

    Option Explicit

       Private Declare Sub CopyMemory Lib "kernel32" Alias"RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length AsLong)

    Private Sub Form_Load()

       MSComm1.Settings = "9600,n,8,1"

       MSComm1.PortOpen = True

       Text1 = 256

    End Sub

     

    Private Sub Command1_Click()

       Dim a As Integer

       a = Val(Text1)

       Dim buffer(1) As Byte

       CopyMemory buffer(0), a, 2 '獲得Byte陣列,低位元組在前,高位元組在後

       MSComm1.Output = buffer

    End Sub

    小數

    用多位數據來表示

     

    modbus通信

    起始位停止位 奇數偶數校驗都可以設置

    Crc程式代碼

    Dim CRC_HiByte As Byte,CRC_LowByte As Byte

    Private FunctionCRC16(ByRef cmdstring() As Byte, ByVal j As Integer)

            Dim data As Integer

            Dim I As Integer

            Addressreg_crc = &HFFFF

            For I = 0 To j

                    Addressreg_crc = Addressreg_crcXor cmdstring(I)

                    For j = 0 To 7

                            data = Addressreg_crcAnd &H1

                            If data Then

                                    Addressreg_crc= Int(Addressreg_crc / 2)

                                    Addressreg_crc= Addressreg_crc And &H7FFF

                                    Addressreg_crc= Addressreg_crc Xor &HA001

                            Else

                                    Addressreg_crc= Addressreg_crc / 2

                                    Addressreg_crc= Addressreg_crc And &H7FFF

                            End If

                    Next j

            Next I

           

            If Addressreg_crc < 0 Then

            Addressreg_crc = Addressreg_crc -&HFFFF0000

            End If

           

            CRC_HiByte = Addressreg_crc And&HFF

            CRC_LowByte = (Addressreg_crc And&HFF00) / &H100

    End Function

    Private SubCommand1_Click()

    Dim mydat(2) As Byte

    mydat(0) = &H1

    mydat(1) = &HF0

    Call CRC16(mydat(), 2)

    Text1.Text =Hex(CRC_HiByte)

    Text2.Text =Hex(CRC_LowByte)

    MsgBox " changok!!"

    End Sub

    回車換行

    回車vbcr

    回車換行vbcrlf

     

     

     

     

     

     

    5,編程細節(技巧

    检测可用的端口
    Dim i,j As Integer
    j = 1
    For i = 1 To 16
    MSComm1.CommPort = i
    On Error Resume Next
    MSComm1.PortOpen = True
    If err.Number = 0 Then
        Text1.Text = Text1.Text & "COM" & i & vbCr & vbLf
        j = j + 1    'this   port i can be use
         MSComm1.PortOpen = False
    Else
        MSComm1.PortOpen = False
    End If
    Next i
    Text1.Text = "總共發現" & j - 1 & "個串口:" & vbCr & vbLf & Text1.Text


    串口數據一旦讀出來後緩衝區數據就沒有了

    DimInstring        Instring = MSComm1.Input

    接收緩衝區的長度值一旦讀取也會變成0

    Dim counter As Byte    counter = MSComm1.InBufferCount


    錯誤,提示,規範

    錯誤用gotoerr來處理

    用提示來監控程式運行的狀態

    規範:代碼規範,注釋規範,文檔規範,軟件發佈協議等

     

     

     

     

     

    6,死機問題



    1,中斷嵌套

    2,死循環

    3,硬體問題

    4,緩衝區耗盡(接收緩衝區的數據如果一直纍計將逐漸耗盡內存,所以盡可能快的讀取串口發來的數據)




    專注的力量--專注於嵌入式軟件開發

    轉載請注明出處


    如有錯誤的地方歡迎指正

    wenzerzhang@gmail.com

    转载自:http://blog.csdn.net/liang890319/article/details/7088387

    展开全文
  • VB6使用API实现串口通信

    千次阅读 2007-05-01 16:25:00
    需要和客户的产品通讯,但波特率是非常规的,MScomm无法实现,原有的软件框架和条件又不能转用VC开发底层,于是用VB6调用API实现了这个通讯功能,虽然在VB6下这个程序还是单进程的,但实现了异步非阻塞的通信,性能...

        需要和客户的产品通讯,但波特率是非常规的,MScomm无法实现,原有的软件框架和条件又不能转用VC开发底层,于是用VB6调用API实现了这个通讯功能,虽然在VB6下这个程序还是单进程的,但实现了异步非阻塞的通信,性能相当稳定,下面是测试程序代码

     

    Private Sub cmdSend_Click()
        
    '定义文件读写属性结构
        Dim sa As SECURITY_ATTRIBUTES
        
    '定义串口状态结构
        Dim typCommStat As COMSTAT
        
    '定义串口状态错误
        Dim lngError As Long
        
        
    '********打开串口********
        Dim hCF As Long
        hCF 
    = CreateFile("COM4", _
                            GENERIC_READ 
    Or GENERIC_WRITE, 0, sa, _
                        OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL 
    Or FILE_FLAG_OVERLAPPED, 0)
        Debug.Print 
    "打开串口:" & hCF
        
        
    '********获取出错信息********
        Dim errNum As Long
        errNum 
    = GetLastError()
        Debug.Print 
    "出错信息:" & errNum
        
        
    '定义标志值
        Dim flag As Long
                
        
    '定义设备控制块
        Dim typDCB As DCB
        
        
    '********获取设备控制块********
        flag = GetCommState(hCF, typDCB)
        Debug.Print 
    "获取串口DCB:" & flag
        
        typDCB.BaudRate 
    = 2500     '定义波特率
        typDCB.Parity = NOPARITY   '无校验位
        typDCB.ByteSize = 8        '数据位
        typDCB.StopBits = 0        '停止位 0/1/2 = 1/1.5/2
            
        
    '********设置串口参数********
        flag = SetCommState(hCF, typDCB)
        Debug.Print 
    "设置串口参数:" & flag
        
        
    '********设置缓冲区大小********
        flag = SetupComm(hCF, 10241024)
        
    'Debug.Print "设置缓冲区:" & flag
        
        
    '********清空读写缓冲区********
        flag = PurgeComm(hCF, PURGE_RXABORT Or PURGE_RXCLEAR Or PURGE_TXABORT Or PURGE_TXCLEAR)
        
    'Debug.Print "强制清空缓冲区:" & flag
        
        
    '定义超时结构体
        Dim typCommTimeouts As COMMTIMEOUTS
        typCommTimeouts.ReadIntervalTimeout 
    = 0     '相邻两字节读取最大时间间隔(为0表示不使用该超时间隔)
        typCommTimeouts.ReadTotalTimeoutMultiplier = 0      '一个读操作的时间常数
        typCommTimeouts.ReadTotalTimeoutConstant = 0        '读超时常数
        typCommTimeouts.WriteTotalTimeoutMultiplier = 0     '一个写操作的时间常数(为0表示不使用该超时间隔)
        typCommTimeouts.WriteTotalTimeoutConstant = 0       '写超时常数(为0表示不使用该超时间隔)
            
        
    '********超时设置********
        flag = SetCommTimeouts(hCF, typCommTimeouts)
        
    'Debug.Print "超时设置:" & flag
            
        
    '********发送数据********
        '定义要发送字节数
        Dim lngNumberofBytesToWrite As Long
        
    '定义实际发送字节数
        Dim lngNumberofBytesToWritten As Long
        
    '定义重叠结构体
        Dim typOverLapped As OVERLAPPED
        
        
    '定义发送数据
        Dim arrbytTest(0 To 23As Byte
        
    '载波收发器同步头
        arrbytTest(0= CByte(&H53)
        arrbytTest(
    1= CByte(&H4E)
        arrbytTest(
    2= CByte(&H44)
        
    '后续数据包长度
        arrbytTest(3= CByte(&H14)
        
    '载波表预同步头
        arrbytTest(4= CByte(&HFF)
        arrbytTest(
    5= CByte(&HFF)
        arrbytTest(
    6= CByte(&HFF)
        arrbytTest(
    7= CByte(&HFF)
        arrbytTest(
    8= CByte(&HFF)
        arrbytTest(
    9= CByte(&HFF)
        
    '载波表帧同步头
        arrbytTest(10= CByte(&H9)
        arrbytTest(
    11= CByte(&HAF)
        
    '载波表地址
        arrbytTest(12= CByte(&H59)
        arrbytTest(
    13= CByte(&H20)
        arrbytTest(
    14= CByte(&H0)
        
    '控制码
        arrbytTest(15= CByte(&H1)
        
    '数据长度
        arrbytTest(16= CByte(&H5)
        
    '功能码
        arrbytTest(17= CByte(&H10)
        arrbytTest(
    18= CByte(&H90)
        
    '集中器地址
        arrbytTest(19= CByte(&HBB)
        arrbytTest(
    20= CByte(&HBB)
        arrbytTest(
    21= CByte(&HBB)
        
    '校验和
        arrbytTest(22= CByte(&H50)
        arrbytTest(
    23= CByte(&H3)

            
        
    '获取要发送字节数
        lngNumberofBytesToWrite = UBound(arrbytTest) + 1
        
        
    '声明等待开始时间、结束时间值
        Dim writeStarTime, writeEndTime As Long
        
        writeStarTime 
    = GetTickCount()
        Debug.Print 
    "发送开始时间:" & writeStarTime
        
        
    '定义发送循环步长值
        Dim i As Integer
        
    '定义累计发送字节数
        Dim intTotalNumberOfBytesToWritten As Integer
        
    '定义发送间隔时间(毫秒)
        Dim intIntervalTime As Integer
        intIntervalTime 
    = 0
        
        
    '发送数据
        For i = 0 To UBound(arrbytTest)
            flag 
    = WriteFile(hCF, arrbytTest(i), 1, lngNumberofBytesToWritten, typOverLapped)
            
            
    '获取出错码
            errNum = GetLastError()
            
    'Debug.Print "发送操作出错码:" & errNum

            
    '若返回值不是IO异步操作未决,则关闭串口
            If (errNum <> ERROR_IO_PENDING) And (errNum <> 0Then GoTo closeComm

            
    '异步IO事件获取(返回值为 0 表示出错)
            flag = WaitForSingleObject(typOverLapped.hEvent, 0)
            
    'Debug.Print "异步IO事件获取:" & flag

            
    '判断异步IO事件获取是否成功
            If flag <> 0 Then
                
    '异步IO操作结果获取(等待标记值,必须为true ,否则需要事件激活返回结果)
                flag = GetOverlappedResult(hCF, typOverLapped, lngNumberofBytesToWritten, 1)
                
    'Debug.Print "异步IO操作获取:" & flag

                
    '判断异步IO操作结果获取是否成功
                If flag <> 0 Then
                    intTotalNumberOfBytesToWritten 
    = intTotalNumberOfBytesToWritten + _
                                                        lngNumberofBytesToWritten
                
    End If

            
    End If
            
            
    '间隔时间(用于需要设定每字节间间隔时间的发送协议)
            Sleep (intIntervalTime)
        
    Next
        
        writeEndTime 
    = GetTickCount()
        Debug.Print 
    "发送结束时间:" & writeEndTime
        Debug.Print 
    "发送总时间:" & (writeEndTime - writeStarTime)
        Debug.Print 
    "串口发送操作:" & flag
        Debug.Print 
    "实际发送字节数:" & intTotalNumberOfBytesToWritten
            
        
    '********清空缓冲区等待数据接收********
        flag = FlushFileBuffers(hCF)
        
    'Debug.Print "清空缓冲区:" & flag
        
        
    '********设置串口事件********
        '监听数据接收事件
    '
        flag = SetCommMask(hCF, EV_ERR Or EV_RXCHAR)
    '
        Debug.Print "监听事件设置:" & flag
        flag = SetCommMask(hCF, 0)
        Debug.Print 
    "监听事件设置:" & flag
        
        
    '********等待串口接收事件********
        '声明等待开始时间、结束时间值
        Dim sngStarTime, sngEndTime As Long
        
    '事件掩码
        Dim lngEventMask As Long
        
        
    '定义接收字节数变量
        Dim tempReceive As Long
        tempReceive 
    = 0
            
        Debug.Print 
    "监听开始"
        
    '生成开始时间
        sngStarTime = GetTickCount()
        Debug.Print 
    "开始监听时间:" & sngStarTime
        
        
    '定义等待步骤参数
        Dim n As Integer
        n 
    = 1
        
    '    '监听串口事件
    '
        flag = WaitCommEvent(hCF, lngEventMask, typOverLapped)
    '
        Debug.Print "监听操作:" & flag

    '    '获取出错码
    '
        errNum = GetLastError()
    '
        Debug.Print "监听操作出错码:" & errNum
    '
    '
        '若返回值不是IO异步操作未决,则关闭串口
    '
        If (errNum <> ERROR_IO_PENDING) And (errNum <> 0) Then GoTo closeComm

        
    '定义读取间隔时间(毫秒)
        Dim intReadIntervalTime As Integer
        intReadIntervalTime 
    = 1
        
        
    Do
            
    '        '异步IO事件获取(返回值为 0 表示出错)
    '
            flag = WaitForSingleObject(typOverLapped.hEvent, 0)
    '
            Debug.Print "异步IO事件获取:" & flag
    '
            '获取出错码
    '
            errNum = GetLastError()
    '
            Debug.Print "IO事件获取出错码:" & errNum
                          
            
    '清除错误标志函数,获取串口设备状态
            flag = ClearCommError(hCF, lngError, typCommStat)
            Debug.Print 
    "获取串口设备状态:" & flag

            
    '若获取状态成功
            If (flag <> 0And (typCommStat.cbInQue > 0Then

                Debug.Print 
    "已接收字节数:" & typCommStat.cbInQue

                
    '判断接收缓冲区内的数据是否等于需要接收的字节数
                If typCommStat.cbInQue >= 22 Then
                    
    '跳出循环
                    Debug.Print "跳出循环"
                    
    Exit Do
                
    End If

            
    End If
            
            
    '生成结束时间
            sngEndTime = GetTickCount()
            Debug.Print 
    "" & n & "次监听事件时间:" & sngEndTime
            
            n 
    = n + 1
                    
            
    '读时间间隔
            Sleep (intReadIntervalTime)
            
        
    Loop Until (sngEndTime - sngStarTime) > 1000
        
        
    '生成结束时间
        sngEndTime = GetTickCount()
        Debug.Print 
    "结束监听时间:" & sngEndTime
        
        Debug.Print 
    "监听结束"
        Debug.Print 
    "总接收时间:" & (sngEndTime - sngStarTime)
            
        
    '********接收数据********
        '定义接收数组
        Dim arrbytReceive(0 To 22As Byte
        
    '定义实际接收字节数
        Dim lngNBR As Long
        
    '重叠结构置0
        typOverLapped.hEvent = 0
        typOverLapped.Internal 
    = 0
        typOverLapped.InternalHigh 
    = 0
        typOverLapped.offset 
    = 0
        typOverLapped.OffsetHigh 
    = 0
        
        
    '接收数据
        flag = ReadFile(hCF, arrbytReceive(0), 23, lngNBR, typOverLapped)
        Debug.Print 
    "串口接收操作:" & flag
        Debug.Print 
    "实际接收字节数:" & lngNBR
        Debug.Print arrbytReceive(
    0)
        Debug.Print arrbytReceive(
    21)
        Debug.Print arrbytReceive(
    22)

    closeComm:
        
    '********关闭所有串口事件********
        flag = SetCommMask(hCF, 0)
        
    'Debug.Print "关闭串口事件:" & flag
        
        
    '********关闭串口********
        Dim closeFlag As Long
        closeFlag 
    = CloseHandle(hCF)
        Debug.Print 
    "关闭串口:" & closeFlag

    End Sub

    展开全文
  • VB-串口通信详解

    千次阅读 2019-09-26 05:03:16
     MSComm 控件通过串行端口传输和接收数据,为应用程序提供串行通讯功能。MSComm控件在串口编程时非常方便,程序员不必去花时间去了解较为复杂的API函数,而且在VC、VB、Delphi等语言中均可使用。Microsoft ...
  • VB.NET串口通信例子--我的回忆录

    万次阅读 多人点赞 2011-11-13 19:16:38
    串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口,现在配电脑好像只有一个。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也...
  • VB.NET串口通信例子

    千次阅读 2014-02-23 17:32:29
    串口是计算机上一种非常通用设备通信的协议。大多数计算机包含两个基于RS232的串口,现在配电脑好像只有一个。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS-232口。同时,串口通信协议也...
  • VB6. 0提供了串行端口通信控件MSComm,该控件封装了通信过程的底层操作,用户只需设置MSComm控件的属性和对相应的事件进行编程,即可完成串行通信功能
  • VB串口通讯的实现

    千次阅读 2012-03-13 16:46:33
     串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。 提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程语言以及大串繁琐的代码。  ...
  • VB串口VB串口通信

    2018-10-23 18:40:45
    vb串口通信编程 一、概述    串口通讯作为一种古老而又灵活的通讯方式,被广泛地应用于PC间的通讯以及PC和单片机之间的通讯之中。提到串口通讯的编程,人们往往立刻想到C、汇编等对系统底层操作支持较好的编程...
  • 求助 用VB编写串口通讯

    千次阅读 2018-05-29 18:07:13
    接受部分 每次都不能完整的接受第一个数据Dim buffer As StringDim cando As BooleanDo Until Len(MSComm1.Input) &gt; 0Text2.Text = "未检测到数据!"DoEventsLoop Text2.Text = "...
  • VB串口通信源码210个

    千次下载 热门讨论 2020-07-30 23:32:31
    001、VB串口通讯视频教程源码41个 002、Visual Basic串口通信工程开发实例导航随书源码7个 003、Visual Basic串口通信与测控应用技术实战详解 源代码(15个全) 004、GE PLC串口通讯,VB编制,读取内存单元 005、PC机...
  • VB串口通信实例:PC机与51单片机串口通信,适合初学者学习上位机与下位机通讯使用。
  • VB串口通信经典源码合集
  • VB.NET 串口控件的使用和说明

    千次阅读 2017-09-04 23:18:49
    一、认识串口控件,名称SerialPort,调用方式如下图所示。 二、串口常用参数说明**BaseStream 获取 SerialPort 对象的基础 Stream 对象。 BaudRate 获取或设置串行波特率。 BreakState 获取或设置中断信号状态。 ...
  • serial port,即串行端口,现在大多数硬件设备均采用串口技术与计算机相连。 Public Class Form1 Private Sub GetSerialPortNames() ' Show all available COM ports. For Each sp As String In My.Computer....
  • VB串行通信详解

    2020-07-30 23:33:22
    VB串行通信详解,采用VB语言编写串口数据通信上位机详解。
  • 串口串行接口,计算机上通常在设备管理里面看到是COM接口)通讯曾经(目前很多已经改成了usb做传输)是很多设备数据传输的方式,例如:外置Modem。以下是常见的串口线 串口主要针脚说明: 虽然目前还有大量的...
  • 多个串口同时通信--请教

    千次阅读 2011-08-02 13:42:03
    vb.net 如何实现多个串口同时通信啊? 我要做的一共有32个串口同时通信.难道要加32个SerialPort控件吗? 有什么好的方法啊?谢谢! 请教各位朋友有什么好的方法吗?请提供.感谢!
  • 前言:VB串口通信的方法一般有两种:一是通过Windows的通信API进行通信;另一种是通过VB的标准控件MSComm来实现。这篇文章要讲的是上位机如何通过VB的串口控件MSComm和下位机进行串口通信的过程。 以下是给VB初学者...
1 2 3 4 5 ... 20
收藏数 4,223
精华内容 1,689
关键字:

vb串口通信