精华内容
下载资源
问答
  • VB串口收发串口可改

    2015-01-07 11:14:52
    VB 实现串口收发字符串,保存文件等操作。
  • VB.NET 串口收发+跨线程调用,需要用串口收发的可以看看,需要跨线程调用的也可以借鉴下.
  • 串口收发调试VB代码

    2015-05-03 10:48:53
    串口的接收与发送vb6.0源代码,用来调试串口的,只是例子,还待完善
  • vb串口通讯实例,可用于局域网通讯,功能很全
  • VB串口通信源码210个

    千次下载 热门讨论 2013-10-15 11:32:27
    001、VB串口通讯视频教程源码41个 002、Visual Basic串口通信工程开发实例导航随书源码7个 003、Visual Basic串口通信与测控应用技术实战详解 源代码(15个全) 004、GE PLC串口通讯,VB编制,读取内存单元 005、PC机...
  • VB2010的串口通信收发功能实现

    热门讨论 2014-02-18 14:01:01
    实现串口收发功能,还有自动检测电脑设备的com口,比较代码简单明了,适合初学者快速学会串口通信的应用。
  • 使用VB2008制作的串口收发工具,可以收发16进制数据,文本(支持ASCII或UNICODE编码);具备定时自动发送功能.系统需要.NET FRAMWORK3.5支持.
  • 使用VB2008制作的串口收发工具,可以收发16进制数据,文本(支持ASCII或UNICODE编码);具备定时自动发送功能.系统需要.NET FRAMWORK3.5支持.
  • VB实现串口通信

    2018-09-13 15:56:21
    VB6.0下利用串口控件实现串口通信,最终两个串口之间能够收发自定义消息
  • 串口数据接收方式 如何处理不定长数据的接收 用字符方式收发码值大于127的字符数据 串口通讯问答2
  • 源码仅供参考,可以实现简单的定时收发和文件存储~~自动存储正在设计
  • VB8串口调试源码

    2008-06-26 08:49:44
    应用VS2005平台,以VB8编串口收发通讯简单实例,代码简洁,供大家参考!
  • 收集的vb6.0串口编程资料,二进制数据的串口收发方式,采用异步事件接收,解决了实用的问题
  • VB 使用COM串口驱动GSM模块收发短信测试用例 ****************************************************************** TEXT 测试使用接收新短信:1. 收到+CMTI: "SM", 例如: +CMTI: "SM",1 问题: +CMTI: 和 "SM",...
        VB 使用COM串口驱动GSM模块收发短信测试用例   ****************************************************************** TEXT 测试使用接收新短信:1. 收到+CMTI: "SM", <index> 例如: +CMTI: "SM",1  问题: +CMTI: 和  "SM",1  是两次收取的。 2. 此时读出<index>,然后用"AT+CMGR"指令即可读出短消息内容。例如:AT+CMGR=1+CMGR: "REC UNREAD","+8613356673796",,"06/08/07,12:41:23+00"Hi OK-------------------------------删除短信:'AT+CMGD=1,0 删除指定index的短信'AT+CMGD=1,1 删除已读短信'AT+CMGD=1,2 删除已读和已发送短信'AT+CMGD=1,3 删除已读、已发和未发送短信'AT+CMGD=1,4 删除全部短信------------------------------- PDU 测试 使用接收短信:AT+CMGR=1 +CMGR: 0,,200891683108502405F02406A17011880008608080414152000475286237 OK 发送测试:(发送内容“I Love you!”,接收者13356673796)AT+CMGS=36> 0011000B913153663797F60008001600490020004C006F0076006500200079006F00750021+CMGS: 181 OK   接收短信测试:+CMTI: "SM",2AT+CMGR=2+CMGR: 0,,24 0891683108502405F02406A1701188000860808051927100084E2D56FD00310041OK 0891683108502405F02406A1701188000860808051043000020031           071188发送的“1”  长度180891683108502405F0240D91683153663797F60000608080511425000131     13356673796发送的“1” 长度210891683108502405F0240D91683153663797F6000860808051845100066D4B8BD50031  13356673796发送的“测试1” 长度26 查看全部短信:AT+CMGL=4 +CMGL: 2,1,,132 (说明:<index>,<stat>,[alpha],<length>)0891683108502405F02406A1701188000860809001041200745B8862A459294F7F000A005A004A00205B9A81EA5DF1000A005A0042002054688FB94FE1606F000A00530051624B673A53F700206388674367E58BE2000A00420044624B673A53F700207ED15B9A4EB260C553F7000A67E58BE24ED64EBA4F4D7F6E8BF751487ED15B9A4EB253CB53F77801002E+CMGL: 3,1,,1560891683108502405F02405A17011F80008608090011495008C5C714E1C65C579D1670D52A1000A0031002E5B8862A459294F7F0028003100325143002F67080029000A0032002E72318F6657287EBF002800305143002F67080029000A0033002E516C539567E58BE2002800305143002F67080029000A5BA2670D70ED7EBF0030003500330031002D00380038003600390038003100310030002C8BF756DE590D5E8F53F7+CMGL: 4,1,,260891683108502405F02405A17011F80008608090014492000A4E8689E38BE660C53002 OK
    展开全文
  • VB6.0实现串口通信

    2018-09-13 15:58:12
    VB6.0下实现串口通信,并且串口,波特率可选,最终实现自定义消息收发
  • 串口助手VB源码

    2018-07-09 10:00:03
    串口助手VB源码,支持文件发送,16进制收发,文本收发,内含exe,不用编译也可以直接用
  • vb6_串口API

    2014-03-31 21:56:37
    vb6不用mscomm控件,直接调用Api的串口收发代码,里面有两个文件夹,发送是一样,接收分两种方式:定时器接收和点击按钮接收,测试可用,如果想做绿色软件,可以考虑用用.
  • vb语言编写的串口调试助手 可收发文本 数据 可控制串口通断
  • 摘要:1)VB6如何通过串口发送和接收二进制数据 2)如何一次获取一组串口数据 正文如下: 1)二进制收发 MSComm1.InBufferCount = 0 '清空接收缓冲区 MSComm1.RThreshold = 1 '收到RThreshold个字符数时触发...

    源码:https://download.csdn.net/download/sequh/13709444

    摘要:1)VB6如何通过串口发送和接收二进制数据

               2)如何一次获取一组串口数据

    正文如下:


    1)二进制收发
            MSComm1.InBufferCount = 0               '清空接收缓冲区
            MSComm1.RThreshold = 1                  '收到RThreshold个字符数时触发事件MSComm1_OnComm
            MSComm1.InputMode = comInputModeBinary      '设置接受数据的类型是二进制类型数据
            MSComm1.InputLen = 8                       '一次性从接收缓冲区中读取所有数据(8个字节为一组!!)


    2)发送二进制数据
         ' 发送时,要把二进制数据存储在byte数组中:

         '二进制模式发送:BB 00 22 00 00 22 7E
        Dim v(6) As Byte
        v(0) = &HBB
        v(1) = &H0
        v(2) = &H22
        v(3) = &H0
        v(4) = &H0
        v(5) = &H22
        v(6) = &H7E
        On Error Resume Next
        MSComm1.Output = v


    3)接收二进制数据
    '思路是这样的:


    这里的关键是调用sleep(20),把调用线程从线程调度器的可运行队列中移除20ms,这样程序在这20ms中是不再接收串口数据的。
    然后从接收缓冲区中把数据每次按8个为一组,一组一组地进行取出,直到缓冲区数据全部取完为止。
    这里有个知识点是:每MSComm1.Input一次就MSComm1.InBufferCount减小,减小的正是MSComm1.InputLen = 8 
    'MSComm1.InBufferCount属性:当前接收缓冲区接收到的数据的长度,

    Private Sub MSComm1_OnComm()
        Dim UB1%, UB2%, TM As Integer, i As Integer
        Dim strData As String
        Select Case MSComm1.CommEvent
            Case comEvReceive
                Sleep (20)          '相隔20ms就可以正确接收到24个字节的数据
                Do While MSComm1.InBufferCount > 0
                    TM = TM + 1
                    If TM = 1 Then
                        Rv_data = MSComm1.Input
                    Else
                        tmpRV = MSComm1.Input
                        UB1 = UBound(Rv_data)
                        UB2 = UBound(tmpRV) + 1 '元素比下标大1
                        ReDim Preserve Rv_data(UB1 + UB2)
                        For i = UB1 + 1 To UB1 + UB2
                            Rv_data(i) = tmpRV(i - UB1 - 1)
                        Next i
                    End If
                Loop

                If UBound(Rv_data) = 7 Then     '没接收到EPC
                    'lblTID.Caption = "空"
                Else
                    For i = 8 To 19
                        If Len(Hex(Rv_data(i))) = 1 Then
                            strData = strData & "0" & Hex(Rv_data(i)) & " " '如果只有一个字符,则前补0,如F显示0F,最后补空格
                        Else                                                    '方便显示观察如: 00 0F FE
                            strData = strData & Hex(Rv_data(i)) & " "
                        End If
                    Next
                    
                    strData = strData & "-" & Hex(Rv_data(5))

                    lblTID.Caption = strData
                    lblBg.BackColor = vbGreen
                    lblTID.ForeColor = &H80000012
                    
                    strData = ""
                    newCount = 0
        
        
                    Erase tmpRV
                    Erase Rv_data
                End If
        End Select
    End Sub

     

    展开全文
  • 最简单的VB.net的串口测试程序源码,测试环境为visualstudio2008 收发数据为英文字串。
  • VB调用MSCOMM控件,进行串口收发数据的示例,采用事件驱动,速度极快!
  • PIG串口助手 VB6.0 源码

    2012-09-10 00:46:17
    VB串口调试助手,我的第一个VB程序 1、自动搜素串口号 2、支持十六进制收发 3、支持接收TEXT自定义长度换行 4、同步显示输入字符串的ASC码
  • vb2008串口编程应用实例,SerialPort控件应用,详解SerialPort的应用方法,简单的接口以及消息收发程序,接收程序。
  • 串口通讯实例程序(VB)

    2012-02-24 20:26:08
    这一篇文档中,我们运用 VB 的SerialPort 控件简单的编写一个串口收发
  • 基于VB6.0开发环境,使用MSComm控件开发的串口数据收发软件源码,支持8路数据波形显示。较适合与单片机通信调试。
  • 基于VB串口通讯及其软件实现

    千次阅读 2012-02-02 11:17:03
     PC串行通信是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步通信适配器,是PC机用于异步通信的接口)进行编程实现的通信  一般说来,PC机都有一个或多个串行端口,它们依次为Com1、Com2……。这些串口提供了...
     
    

    1 串口通信的通信机理
      
      PC串行通信是指直接对串行端口的UART(PC机的通用异步收发器,也叫异步通信适配器,是PC机用于异步通信的接口)进行编程实现的通信
      一般说来,PC机都有一个或多个串行端口,它们依次为Com1、Com2……。这些串口提供了外部设备与PC进行数据传输和通信的通道,在CPU和外设之间充当了解释器的角色。当字符数据从CPU发送给外设时,这些字符数据将被转换成串行比特流数据;而当接受数据时,从外界进来的比特流数据被转换成字符数据传递给CPU进行处理。在操作系统方面,Windows用通信驱动程序(COMM.DRV)调用API函数发送和接受数据。当用通信控件或声明调用API函数时,它们由COMM.DRV解释并传递给设备驱动程序。
      作为一个VB程序员,要编写串口通信程序,只需知道通信控件提供给Windows通信API函数的接口即可,换言之,只需设定和监视通信控件的属性和时间即可。
      
    2 串行通讯接口RS-232
      
      前一章节讨论了串口通讯的通信机理,但为了实现具体的数据采集、监视、通信功能,必须了解具体的串口形式。目前使用最广泛的串行接口有两种:RS-232和RS-485。本文着重讨论RS-232,RS- 485不作介绍。
      RS-232C标准的全称是EIA-RS-232C标准,其中EIA代表美国协会,RS代表推荐标准,232是标识号,C代表RS232的最新一次修改(1969年),在这之前,有RS232A、RS232B协议。它规定连接电缆和机械、电气特性、信号功能及传送过程。EIA-RS-232C定义了按位串行传输的数据终端设备(DTE)和数据通讯设备(DCE)之间的接口信息。RS-232C是从DTE或机串行接口角度来定义引脚信号的。
      目前RS-232是PC机与通信工业中应用最广泛的一种串行接口。RS232被定义为一种在低速率串行通讯中增加通讯距离的单端标准。RS232采取不平衡传输方式,即所谓的单端通讯。
      DB9(9针串口)的接线方式如下:1脚,数据载波检测DCD;2脚,接收数据RXD;3脚,发送数据TXD;4脚,数据终端准备DTR;5脚,信号地GND;6脚,数据设备就绪DSR;7脚,请求发送RTS;8脚,清除发送CTS;9脚,振铃指示DELL。
      DB25(25阵串口),常用的针脚也有9个,且和DB9可以一一对应,具体接线方式为:8脚,数据载波检测DCD;3脚,接收数据RXD;2脚,发送数据TXD;20脚,数据终端准备DTR;7脚,信号地GND;6脚,数据设备就绪DSR;4脚,请求发送RTS;5脚,清除发送CTS;22脚,振铃指示DELL。
      一般来说,对于要求不太高的场合,使用接收数据RXD,发送数据TXD,信号地GND三个脚即可实现数据传输。如果要求有硬件流控制,则必须使用DTR、DSR、RTS和CTS这四个脚。
      值得注意的是RS-232C是用正负电压来表示逻辑状态,与TTL以高电平表示逻辑状态的规定不同。因此,为了能够与计算机接口或终端的TTL器件连接,必须在RS-232C与TTL电路之间进行电平和逻辑关系的变换。
      
    3 三种读取串口数据的方式
      
      目前通用的串口通讯的软件实现方式有3种,本文都进行详细的介绍,它们各有自身的优缺点,读者在编程时可根据具体的情况选择合适的方式。


      3.1利用Mscomm控件
      VB提供的这个通信控件“隐藏”了大部分串口通信的底层运行过程,程序员只需编写少量的代码就可以完成软件的开发过程。在通信数据量不大,通信要求不是很高的情况下建议采取此方式。
      利用Mscomm控件实现通信最需要掌握的就是它的几个主要属性,下面选取其中重要的进行介绍,其余的可以参考相关资料。
      (1)Settings属性:以字符串的形式设置并返回波特率、 奇偶校验位、数据位、停止位。这个属性很重要,针对不同的终端设备需要根据设备的具体情况进行调整(比如日本的设备不同于美国的设备,通常会采用奇校验)。
      (2)InputMode属性:设置接收数据的类型,0为文本格式,1为二进制格式。
      (3)Input属性:读取并删除接收缓冲区中的数据流。
      (4)Output属性:向发送缓冲区传送一数据流。
      (5)Rthreshold属性:该属性为一阀值,它确定当接收缓冲区内的字节个数达到或超过该值后就产生代码为ComEvReceive的OnComm事件。
      (6)Handshaking属性:设置和返回握手协议,即计算机内部CPU与串口之间的通讯协议,保证在缓冲区过载时数据不会丢失。这个属性在保证数据传输的正确性方面有很大的作用,共有四个选项,分别表示:①无流控制;②软件流控制;③硬件流控制;④软硬件流控制。采用硬件流控时,要求串口之间和电缆支持硬件握手,在自己制作串口通信线时,有关硬件握手的线RTS、CTS、DSR、DTR要连接正确。
      在正确设置这些属性的基础上,剩下的就是打开串口,通过串口发送及接受数据了。本文后续章节利用一个实例详细讲解了这些属性的设置及具体代码。


      3.2直接调用Win32 API通信函数 (实例见mac文件夹,读取串口设备)
      直接调用Windows API函数,可以清楚地理解串口通信的机制,根据需要灵活地配置串口的各种参数和属性,而且直接调用低层API函数,通信效率比较高,但付出的代价就是程序较复杂,编程周期长,适合于大型通信程序及通讯质量要求较高的场合。
      在32位的Windows系统中,串口通信是作为文件处理的,串口操作一般为打开、关闭、读取、写入等操作,相应的Windows API函数如下:
      (1) CreateFile()函数:实现串口的初始化并打开串口,返回串口句柄资源以供后续进程调用。
      (2) CloseFile()函数:关闭串口,串口是非共享资源,应用程序以独占方式使用,通信结束应立即关闭。

    (3) ReadFile()函数:从串口输入缓冲区读取数据流。
      (4) WriteFile()函数:向串口输出缓冲区发送数据。
      (5) GetCommState()函数:获取串口的当前配置。
      (6) SetCommState()函数:重新分配串口资源的各个参数。
      由于Windows API函数大部分是用C或C++编写,所以在Visual Basic 6.0 中调用Windows API函数之前必须先在模块级代码上用Declare语句对所调用的函数和用到的数据结构进行声明,具体的函数声明及数据结构请朱友芹编《新编Windows API参考大全》。


      3.3 调用第三方函数库(如Pcomm函数库) (实例见Interview)
      DLL(Dynamic Link Library)动态链接库是一种可以被VB语言调用的程序模块。DLL中包含的可执行代码不能单独执行,而应由Windows应用程序调用执行。一般数据采集卡的供应商都会提供该采集卡的DLL库函数,使用这些DLL库函数,可以做到程序代码共享,减少程序的编写工作量。用户不需要知道这些代码的实现细节,只需要了解调用函数的参数和函数处理后的返回值。
      Pcomm函数库是由Moxa公司为开发串口通信程序提供的一套函数库。通过对Windows API函数的进一步封装,提供50多个串口操作函数。覆盖了Windows操作系统下几乎所有异步通信的问题,可以简洁的开发多线程通讯程序。采用该库,通信的可靠性与使用MSComm32控件比较有了明显提高, 而相对直接使用Win32API函数编程则降低了程序开发难度, 缩短了程序开发周期。
      这种方式上述直接调用Windows API函数有相似之处,但也有明显的差异。API函数常采取的方法是在串口监视线程中设置串口通信事件掩码及重叠机制,允许程序在后台等待串口通信事件。通过WaitCommEvent检测特定的串行通信事件。而在Pcomm中,可以采用中断处理的方式,为各种事件指定相应的中断处理函数,如接收到一定数目的字符,接收到结束字符,接收到中止信号以及发送缓冲区为空等;同时还可以采用线程控制的方式,直接采用库中的sio_read()和sio_write()函数读写串口。
      Pcomm..DLL中的函数按功能分为6项:端口设置、数据发送与接收、串口状态检测、事件服务、文件传输、杂项。Pcomm..DLL中主要的函数介绍如下。
      sio_open:打开端口;sio_close: 关闭端口。
      sio_ioctl:设置端口参数,如波特率等。
      sio_read:从端口接收数据;sio_write向端口发送数据。
      sio_iqueue:得到接收缓冲区中的数据长度。
      sio_oqueue:得到发送缓冲区中的数据长度。
      Pcomm在串口通信中的功能十分强大,但基于篇幅的考虑,在此不便赘述,读者可参考相关书籍或Pcomm自带的帮助文档。


    4 串口通讯的错误及处理

    由于外界干扰或电压波动等原因,串口通讯可能会出现错误,如接受缓冲区溢出,奇偶校验错误等。为了处理这些错误,在Mscomm控件中就提供了一个OnComm事件,它可以捕获通信时发生的串口事件和错误信息,自动转入事件处理程序。在OnComm事件中,CommEvent属性是OnComm事件的指示,下面简单介绍几个重要的CommEvent属性值。
      ComEventBreak:表示收到一个中断信号;
      ComEventFrame:表示硬件检测到一个数据帧错误;
      ComEvenRxover:表示接收缓冲区溢出;
      ComEventTxFull:表示输出缓冲区已满;
      ComEvReceive:表示接手到了Rthreshold个字符;
      ComEvEOF:表示接受到了EOF字符(ASCII字符26)。
      编程时用SelectCase语句,根据不同的CommEvent属性值,去执行不同的处理程序。
      除了以上所述的通讯错误外,在串口通信时,如果数据传输突然中断,对串口的读写操作可能会进入无限期的等待状态, 为避免这种情况发生, 必须设置串口读写操作的等待时间, 等待超时后,串口的读写操作将被主动放弃,这样即使数据传输突然中断程序也不会被挂起或阻塞。可以根据具体要求规定串口读写操作的最长时间值,即串口读写必须在这段时间内完成,否则提示串口操作失败。
    展开全文
  • 支持二、十、十六进制转换,支持串口数据清空、保存,支持文件、字符、十六进制收发。添加自定义按钮、信息显示框。软件关闭后自动保存用户设置及数据。支持自动发送、数据校验和。支持37款皮肤随意换。增加了注册机...
  • VB.NET VS2019, serialport收发数据,典型的代码,每200ms发一下命令,读取外部一个板子的数据。连接串口后,可以读到数据,但是此时点击‘关闭串口’,或者退出窗口,都要点很多次,才有效,好像收数据时,影响了...
  • PC串口通信的VB源程序

    2009-04-02 13:08:36
    能够实现串口通信的基本的收发功能,比较简单,适合初学者
  • 经测试可以正常进行通讯 通过RS232和RS485通讯可正常收发数据

空空如也

空空如也

1 2 3 4 5
收藏数 81
精华内容 32
关键字:

vb串口收发