vb mscomm 接收不到数据

tornado_dai tornado_dai 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

Private Sub Form_Load()
Dim i As Integer
If MSComm1.PortOpen = True Then
MSComm1.PortOpen = False
End If '先判断串口是否关闭,如果打开则关闭
MSComm1.CommPort = 5 'COM端口
MSComm1.Settings = "115200,n,8,1"
MSComm1.InputLen = 0 '读取接收缓冲区的所有字符
MSComm1.InputMode = comInputModeBinary '采用二进制传输
MSComm1.InBufferSize = 1024 '接受缓冲区为1024字节
MSComm1.OutBufferSize = 2048 '发送缓冲区位2048字节
MSComm1.InBufferCount = 0 '清空接受缓冲区
MSComm1.OutBufferCount = 0 '清空传输缓冲区
MSComm1.SThreshold = 0 '禁止发送事件
MSComm1.RThreshold = 1 '产生MSComm事件
Command2.Enabled = False '初始化时设置“关闭”按钮不可用
End Sub

Private Sub MSComm1_OnComm()

Dim inbyte() As Byte '存储接收串口数据
Dim buffer As String '存储处理后的串口数据
Dim lenbuffer As Integer '存储处理后的串口数据长度
Dim i As Integer '设置循环变量

Select Case MSComm1.CommEvent
Case comEvReceive
inbyte = MSComm1.Input
For i = LBound(inbyte) To UBound(inbyte)

If Len(Hex(inbyte(i))) = 1 Then
buffer = buffer + "0" + Hex(inbyte(i)) + Chr(32)
Else
buffer = buffer + Hex(inbyte(i)) + Chr(32)
End If

lenbuffer = Len(Replace(Trim(buffer), " ", ""))

Select Case lenbuffer
Case Is = 14
If CByte("&H" & (Mid(Replace(buffer, " ", ""), 1, 2))) = &HAA _
And "&H" & (Mid(Replace(buffer, " ", ""), 14 - 4 + 1, 2)) = &H42 _
And "&H" & (Mid(Replace(buffer, " ", ""), 14 - 2 + 1, 2)) = &H42 Then
If "&H" & (Mid(Replace(buffer, " ", ""), 14 - 12 + 1, 2)) = &H55 Then

If "&H" & (Mid(Replace(buffer, " ", ""), 14 - 10 + 1, 2)) = &H43 _
And "&H" & (Mid(Replace(buffer, " ", ""), 14 - 8 + 1, 2)) = &H47 _
And "&H" & (Mid(Replace(buffer, " ", ""), 14 - 6 + 1, 2)) = &H8A Then
Text2.Text = "测试通过"
End If

End If
End If

case is = 18
....... 省略

End Select
Next i
End Sub


想问下,为什么上位机接收不到数据???
...全文

相关推荐

vb.rar_VB6.0_VB6.0 mscomm_vb6.0 串口

使用VB6.0编写的串口通讯程序界面。使用了控件mscomm

我虽横行却不霸道

VB串口通信编程实战:MSComm控件深度应用

MSComm控件提供了丰富的属性和事件,可以实现对串行端口的全面控制。使用MSComm控件进行通信的基本流程包括:配置串口属性:设置串口的波特率、数据位、停止位和奇偶校验位等参数。打开串口:通过设置PortOpen属性为True来打开串口进行通信。发送数据:通过Output属性向串口发送数据。接收数据:通过Input属性读取串口缓冲区中的数据。关闭串口:完成通信后,通过设置PortOpen属性为False来关闭串口。

CeLaMbDa

VB实现串口数据接收全流程指南

串口通信,又称为串行通信,是一种常见的计算机硬件接口通信方式,它通过单一的线路进行数据的发送和接收。串口通信采用的是异步串行通信方式,即数据以位为单位,逐位传输,而这些位被组织成字节流。在每个字节的传输中,还会包括起始位、数据位、停止位和校验位等,从而确保数据的完整性和正确性。在IT行业中,串口通信技术广泛应用于嵌入式系统、工业控制系统、通信设备和计算机之间的数据交换,它具有结构简单、使用方便、成本低廉等特点。理解串口通信的基本原理和概念,对于进行有效的数据通信和故障排除至关重要。

銀河鐵道的企鵝

掌握MSComm32控件:VB串口通信注册与应用

在本章节中,我们将深入了解MSComm32控件的核心功能与应用方式。MSComm32控件是Microsoft Communications Control的一个32位版本,它提供了一种简单的方法来实现串口通信。这一章分为两大部分:MSComm32控件的定义和特点、MSComm32控件的安装和配置。MSComm32控件是一种ActiveX控件,最初由Microsoft公司开发,用于简化Windows应用程序中的串口通信。

纸寿司

VB项目发布必带项目运行环境(mscomm32.ocx COmdlg32.ocx)带详细安装步骤

VB开发一个软件利用串口通讯,移植到没有安装VB运行环境的电脑报错,mscomm32.ocx COMDLG32.OCX

飛越無限
评论 24
收藏 已收藏
分享
返回顶部
tornado_dai
控件 1,453 成员 41,351 内容