串口收到数据后再转换的一个小问题(将十六进制转化为十进制的)

v20052008 v20052008 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
程序如下:
Dim Data(3) As Integer
Dim buffer As Variant
Private Sub Form_Load()
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.InputMode = comInputModeBinary
MSComm1.RThreshold = 1
MSComm1.InputLen = 2
MSComm1.InBufferCount = 0
MSComm1.PortOpen = True
End Sub

Private Sub MSComm1_OnComm()
buffer = MSComm1.Input
For i = LBound(buffer) To UBound(buffer)
Data(i) = buffer(i)
Next i
Text1.Text = Data(0) + Data(1) * 16 '这里该怎么写啊?在文本框以十进制显示收到的数据
End Sub

根据观察结果 Text1.Text 显示的数据常常到3000多 肯定有问题啊 应该在0--256之间才对啊
应该怎么改啊 还是哪块设置有问题啊
另:我以前做项目的时候看到别人的一个程序是这么写的:Text1.Text = Data(0) + Data(1) * 16 * 16 为什么要两个*16??


???????

...全文

相关推荐

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