MSCOMM控件在VB中发送十六进制数据的方法转
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 ' ------------------ 接收缓冲区满的处理