用VB6.0实现串口通信

Function ConvertHexChr(str As String) As Byte
Dim t As String
If Len(str) <= 2 Then       ‘
1位或2位
    t = "&H" & str
    If IsNumeric(t) Then
        ConvertHexChr = CByte(t)
    Else
        ConvertHexChr = 0          ‘byte 类型取值范围为 0-255 ,不能为-1
   
End If
Else
    ConvertHexChr = 0              ‘byte 类型取值范围为 0-255 ,不能为-1
End If
End Function

Function strHexToByteArray(strText As String, bytByte() As Byte) As Integer
‘二位16进制转化为 BYTE 数组
Dim j As String
Dim i As Long
Dim o As Long

j = Replace(strText, "", "")       ‘去掉空格
i = Len(j)

If i And 1 = 1 Then         ‘奇数
    j = Left(j, i - 1) & "0" & Mid(j, i, 1)     ‘少一位,最后一个数补一位
    i = i + 1
End If
strHexToByteArray = i
/ 2
ReDim
bytByte(strHexToByteArray)

For o = 1 To strHexToByteArray
   
bytByte(o) = ConvertHexChr(Mid(j, o * 2 - 1, 2))
Next o

End Function

字串转为 byte
数组后,再发送.

----------------------------------------------------------
‘这个例子中,是读到指定的字符就结束,否则就循环
Private
Sub Form_Load ()
   ‘ 保存输入子串的缓冲区
   Dim Instring As String
   ‘ 使用
COM1。
   MSComm1.CommPort = 1
   ‘ 9600 波特,无奇偶校验,8
位数据,一个停止位。
   MSComm1.Settings = "9600,N,8,1"
   ‘ 当输入占用时,
   ‘
告诉控件读入整个缓冲区。
   MSComm1.InputLen = 0
   ‘ 打开端口。
   MSComm1.PortOpen =
True
   ‘ 将 attention 命令送到调制解调器。
   MSComm1.Output = "ATV1Q0" &
Chr$(13) ‘ 确保
   ‘ 调制解调器以"OK"响应。
   ‘
等待数据返回到串行端口。
   Do
      DoEvents
   Buffer$ = Buffer$ &
MSComm1.Input
   Loop Until InStr(Buffer$, "OK" & vbCRLF)
   ‘ 从串行端口读
"OK" 响应。

‘ 关闭串行端口。
   MSComm1.PortOpen = False
End
Sub

---------------------------------------------------------
‘这个例子中,当
com 口有事件发生时去操作
OnComm 事件示例
下例说明如何处理通讯错误和事件。可以在相关的 Case
语句之后插入代码来处理特定的错误或事件。

Private Sub MSComm_OnComm ()
   Select Case
MSComm1.CommEvent
   ‘ Handle each event or error by placing
   ‘ code
below each case statement

‘ 错误
      Case comEventBreak   ‘ 收到
Break。
       Case comEventCDTO   ‘ CD (RLSD) 超时。
      Case
comEventCTSTO   ‘ CTS Timeout。
      Case comEventDSRTO   ‘ DSR
Timeout。
      Case comEventFrame   ‘ Framing Error
      Case
comEventOverrun   ‘数据丢失。
      Case comEventRxOver‘接收缓冲区溢出。
      Case
comEventRxParity‘ Parity 错误。
      Case
comEventTxFull   ‘传输缓冲区已满。
      Case comEventDCB   ‘获取 DCB]
时意外错误

‘ 事件
      Case comEvCD   ‘ CD 线状态变化。
      Case
comEvCTS   ‘ CTS 线状态变化。
      Case comEvDSR   ‘ DSR 线状态变化。
      Case
comEvRing   ‘ Ring Indicator 变化。
      Case comEvReceive   ‘ 收到 RThreshold #
of
chars.
      Case comEvSend   ‘ 传输缓冲区有 Sthreshold
个字符                     ‘
                     ‘
      Case comEvEof   ‘
输入数据流中发现 EOF 字符
                     ‘
   End Select
End Sub

时间: 2024-10-28 21:04:05

用VB6.0实现串口通信的相关文章

Linux串口通信

Win8.1-PL2303-树莓派,9600波特率通信正常 参考IBM:http://www.ibm.com/developerworks/cn/linux/l-serials/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #inclu

51单片机串口通信(字符串接收和发送)

1 #include<reg52.h> 2 3 //------------------串口通信协议-----------------// 4 /* 5 客户端数据包格式解释(长度恒为15): 6 例如:A01_fmq_01Off___# 7 A--------数据包的开始标记(可以为A到Z,意味着数据包可以有26种) 8 01-----设备代号 9 fmq_01Off___--------指令(长度恒为10),指令的前4个人字符是指令头部,指令的后6个字符是指令尾部 10 #--------

用VC6.0实现上位机串口通信

串口是常用的计算机与外部串行设备之间的数据传输通道,由于串行通信方便易行,所以应用广泛.我们可以利用Windows API 提供的通信函数编写出高可移植性的串行通信程序.本实例介绍在Visual C++6.0下如何利用Win32 API 实现串行通信程序.程序编译运行后的界面效果如图一所示: 图一.串口通信示例程序 一.实现方法 在Win16中,可以利用OpenComm().CloseComm()和WriteComm()等函数打开.关闭和读写串口.但在Win32中,串口和其他通信设备均被作为文件

串口通信IN C++(适用于Microsoft Visual Studio 2010/2012/2013 ,VC++6.0 )

                 向无数拼命工作的 程序猿 及 攻城狮 致敬! 软硬件平台简介 CPU:P4 2G及以上兼容于80x86架构的中央处理器 内存:1G及以上 硬盘:80G及以上 网卡:100M及以上 操作系统:Windows XP及以上 软件:VS2010/2012/2013  Visual C++ 6.0  Keil uVision3-4   STC_ISP_V488/友善串口助手 硬件:众多.不胜数 2.总体设计思想 串口通讯把数据的字节分解成单个的二进制比特流依次传输,其

串口调试助手,VB6.0开发

1.为什么要自己开发一个串口调试助手 通常我们都是:在网上直接下载一个串口助手,可执行文件,直接使用,并无法得到其源码,在此我们提供了一个VB6.0开发的串口助手: (1)让你极速掌握串口开发的要点: (2)提供源码,并且源代码中有详细注释: (3)极速开发出上位机,并与下位机(单片机)等通讯: (4)使用自己的串口助手,高大上 支持的功能: (1)支持串口设置:串口号,波特率,校验位,数据位,停止位 (2)支持字符格式发送和接收 (3)支持十六进制格式发送和接收 (4)支持将接收到的数据保存到

51单片机之串口通信(三)

51单片机之串口通信(三) 已有 47 次阅读2015-12-29 00:21 |个人分类:51单片机| 单片机, 通信 用串口实现发送和接收同时可操作: 电脑显示结果如图: 源程序: /*项目名称:串口发送接收实验项目内容:串口发送接收同时进行,计算机发送数据给单片机控制P0口,从而控制LED灯的亮灭,单片机发送数据到计算机,计算机显示出来时间:2015年12月23日项目负责人:YUAN*/#include <reg52.h>typedef unsigned char uChar8;type

(转载)用vs2010开发基于VC++的MFC 串口通信一*****两台电脑同一个串口号之间的通信

此文章以visual C++数据採集与串口通信測控应用实战为參考教程 此文章适合VC++串口通信入门 一.页面布局及加入控件 1, 安装好vs2010如图 2, 新建一个基于VC++的MFC项目comm 注意:点击ok,然后next,这时候要将application type改成dialog base.接着next到最后一个对话框是将generated dasses改成CcommDlg,然后finish 4, 将新生成的项目的对话框默认dialog edit删去,如图 5,在对话框中加入两个st

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,

51单片机之串口通信(一)

一.基础知识 1.串行通信和并行通信:目前用的比较多的是串行通信.串行通信优点是连接简单,传输距离远:缺点是传输速度慢. 2.串行通信:分为同步通信和异步通信:异步通信是指发送和接收设备利用各自的时钟控制数据的发送和接收. 3.串行通信的传输方向:单工,半双工,全双工. 4.波特率:每秒钟传输2进制代码的位数,如1个字节为10位,每秒传输240个字节,则波特率为10*240=2400bps,单位是bps: 5.RS-232C:25个管脚,我们用到的是PGND(保护接地).TXD(发送数据),RX