串口收到数据后再转换的一个小问题(将十六进制转化为十进制的)
程序如下:
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??
???????
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??
???????
...全文
相关推荐
串口工具及CRC计算数据分析编码转换
串口工具,自动CRC计算分段,分析收到串口的数据,数据进制转换,文本编码转换,是单片机串口数据调试的好帮手.本程序为本人的原创,绝对无毒
UART-char-to-int.rar_labview UART_labview十六进制
通过下位机RS232发过来的十六进制数,可以通过这个子VI转换为数值变量进行计算。
串口调试助手十六进制数据转成十进制float型
无线传感器网络进行数据传输,在pc端使用串口调试助手接收十六进制数据,针对每一个数据包进行批量定的数据处理,将数据包中的十六进制数据转换成十进制数据,便于后期处理和利用
十六进制转化为十进制(C编写,附代码)
十六进制转化为十进制(C编写,附代码) 采用调用函数htoi
汇编语言实现二进制,十进制,十六进制的相互转换
8086系统,利用汇编语言实现8位以上进制转换


VB基础类
