vb向串口发送一串16进制的指令,实现通信

wanglinlin19910202 wanglinlin19910202 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
求大神帮忙看看这个程序,输入的十进制最后怎么转换成16进制,串口通信怎么实现?目标指令码如下:
FEFE FE 68 20 00 00 03 13 00 00 00 24 12 03 01 00 00 00 00 00 05 00 00 00 00 05 00 00 00 00 2C 0E 16
要求在第一列输入的值如123456.78(最大为999999.99)转换为78H 56H 34H 12H样式并替换到00 00 00 00 05 00 00 00 00 05 00 00 00 00 2C之间(05 05 2C作为单位不变)并将指令发送到单片机,求大神帮忙分析一下错误,如何改正?

Private Sub Command2_Click()
Dim s As String, i As Integer, j As Integer, k As Integer, m(3) As Integer, a

s = Val(Text1.Text) * 100
j = Len(s)
For k = 0 To 7 - j Step 1
s = "0" & s
Next k
For i = 1 To Len(s) Step 2
Text5.Text = Text5.Text & Mid(s, Len(s) - i, 2) & " "
Next
m(3) = Mid(s, 1, 2)
Text6.Text = Val(m(3) \ 10) * 16 + Val(m(3) Mod 10)
' m(2) = Mid(s, 3, 2)
' m(1) = Mid(s, 5, 2)
' m(0) = Mid(s, 7, 2)
' a = Array(m(0), m(1), m(2), m(3))
' For i = 0 To 3
' Text6.Text = Text6.Text & " " & m(i) 'Text6 = Text6 & vbCrLf & m(0) & m(1) & m(2) & m(3)
' Next i
' s = Text2.Text * 100
' j = Len(s)
' For k = 0 To 7 - j Step 1
' s = "0" & s
' Next k
' For i = 1 To Len(s) Step 2
' Text6.Text = Text6.Text & Mid(s, Len(s) - i, 2) & " "
' Next
' s = Text3.Text * 100 '流量不能超过六位整数,考虑将*100去掉
' j = Len(s)
' For k = 0 To 7 - j Step 1
' s = "0" & s
' Next k
' For i = 1 To Len(s) Step 2
' Text7.Text = Text7.Text & Mid(s, Len(s) - i, 2) & " "
' Next
' Text4.Text = &H46&H45 &H46&H45 &H46&H45 &H46&H45 &H68 &H20 &HAA &HAA &HAA &HAA &HAA &HAA &HAA & vbCrLf & Text5.Text & " 05 " & Text6.Text & " 05 " & Text7.Text & " 2C 81 16"
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "2400,N,8,1"
'MSComm1.InputMode = comInputModeText
MSComm1.InputLen = 1
MSComm1.RThreshold = 1
MSComm1.Output = cha$(46) + cha$(45)
'MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
Dim buffer As String
buffer = MSComm1.Input
MSComm1.OutBufferCount = 0

End Sub
...全文

相关推荐

SPCOMM通信 CRC验证 串口发送16进制

一个利用SPCOMM控件进行串口通信的例子,例子里包含了MODBUS通信的CRC校验代码和向串口发送16进制数据的代码,是学习串口通信、MODBUS通信的好资料哦

duke222504

<.Net><VB>使用VB.net编写字符串与16进制byte转换程序(字符串转16进制,string转byte),串口发送文本直接转16进制数据

在使用串口发送数据指令时,通常要求的事字节数组,而通常输入文本框输入的都是字符,所以,如果希望发送时字符直接变成字节,就需要进行转换。 网上有很多这种程序,但大多数比较繁琐,有一种利用正则表达式来进行提取转换的程序比较简单,这里分享出来: ''' <summary> ''' 字符转16进制函数 ''' 本函数为自定义函数 ''' </summary> ''' <param name="s">字符串</param>

机构师

基于VB的Modbus RTU协议源码实现与工业通信实战

终于到了动手写代码的时候!无论你是维护老旧的VB6系统,还是开发新的VB.NET应用,掌握串口通信都是必不可少的一课。

青妍

VC6开发串口调试助手ComTest:从串口通信原理到实战

串口通信是嵌入式开发、硬件调试与上位机联调中的基础技术,其本质是设备间通过串行数据线按位传输,必须严格约定波特率、数据位、停止位与校验位。理解这一原理,才能正确实现数据的收发与解析。在Windows平台上,开发者常借助MSComm控件快速构建串口调试工具,通过事件驱动模型处理异步数据,并结合二进制模式避免0x00被截断等隐藏问题。这类工具广泛应用于单片机、GPS模块、PLC等设备的通信验证,可大幅提升调试效率。本文以VC6开发串口调试助手ComTest为例,讲解如何借助MSComm控件完成串口参数配置、数据

weixin_34387468

一个非常好的VB串口通信控制程序

VB6. 0提供了串行端口通信控件MSComm,该控件封装了通信过程的底层操作,用户只需设置MSComm控件的属性和对相应的事件进行编程,即可完成串行通信功能

zhou836235126
评论 2
收藏 已收藏
分享
返回顶部
wanglinlin19910202
VB基础类 7,788 成员 197,583 内容