您的当前位置:首页正文

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

2024-04-15 来源:好走旅游网


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

、初始化配置

Private Sub Form_Load()

With MSComm1

If .PortOpen = True Then .PortOpen = False End If

.CommPort = 4

.Settings = BaudRate & ”,n,8,1 ” .InBufferSize = 1024 .OutBufferSize = 1024

.InputMode = comInputModeBinary

.InputLen = 0

.SThreshold = 0 .InBufferCount = 0 .OutBufferCount = 0

.RThreshold = 1

'使用COM1 '设置通信口参数

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

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

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

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

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

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

.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 MSComm1.CommEvent ' Case comEvReceive ' 接收到字符

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

选择事件

InByte = MSComm1.I nput ' ' 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)) ' ----- ascii End If Next j

码显示处理

Txt_Rcv.SelText = inData ' inData =\"\"

将刚收到的字符串显示出来

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

Case comEventRxOver '

MSComml.InBufferCount = 0

接收缓冲区满的处理

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

End Sub

因篇幅问题不能全部显示,请点此查看更多更全内容