MSCOMM控件在VB中发送十六进制数据的方法转

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MSCOMM件在VB中发送十六进制数据的方法<转>

一、初始化配置

Private Sub Form_Load()

With MSComm1

If .PortOpen = True Then

.PortOpen = False

End If

'使用COM1

'设置通信口参数

' 设置MSComm1 接收缓冲区为1024 字节

' 设置MSComm1 发送缓冲区为1024 字节

.InputMode = comInputModeBinary

'设置接收数据模式为二进制

形式

' 设置Input 一次从接收缓冲读取全部字节数

' 设置发送完所有产生OnComm 事件'清除接收缓冲区

'清除发送缓冲区

' 设置接收一个字节产生OnComm 事件

.CommPort = 4

.Settings = BaudRate & ",n,8,1

" .InBufferSize =

1024 .OutBufferSize = 1024

.InputLen = 0

.SThreshold = 0

.InBufferCount = 0

.OutBufferCount = 0

.RThreshold = 1

.RTSEnable = True

If Not .PortOpen Then '判断通信口是否打开

On Error Resume Next

.PortOpen = True ' 打开通信口If Err Then ' 错误处理

MsgBox " 串口被占用或此串口不存在!通信无效!", 16,

Exit Sub

End If

End If

End With

End Sub

注意:数据收发模式为.InputMode = comInputModeBinary

二、发送一个字节的16 进制数据

Dim aa(0) As Byte

aa(0) = &HAA

MSComm1.Output = aa

三、接收数据(事件方式)

Private Sub MSComm1_OnComm()

On Error Resume Next

Dim inData As String ' 串口接收的数据

Dim InByte() As Byte ' 定义一个二进制指针放接收到的数据

Dim inByte1() As Byte

Select Case mEvent ' 选择事件

Case comEvReceive ' 接收到字符

TimeNum = 4 ' ---------------- 赋值计时常量

错误提示"

'设置接收数据模式为二进制形式

InByte = MSComm1.Input 数据转移到指针

Serial_Rece_Fg = True

Dim j As Long

For j = 0 To UBound(InByte) ' 循环到指针上标If InByte(j) = 13 Then

inData = inData & vbCr 'Lf

Else

inData = inData & Chr(InByte(j)) ' ----- a scii

End If

Next j

Txt_Rcv.SelText = inData ' 将刚收到的字符串显示出来

inData = ""

Txt_Rcv.SelStart = Len(Txt_Rcv.Text) ' 光标置后

MSComm1.InBufferCount = 0

MsgBox " 接收缓冲区满了!" ' -------- 发出警告End Select

End Sub 码显示处理

Case comEventRxOver ' ------------------ 接收缓冲区满的处理

相关文档
最新文档