本人在写一段通过串口采集PT100温度的代码时,遇到了一些问题:
我使用的是一个成品的PT100温度采样模块,根据它的设计,在其接受到输出温度的请求后,会输出一组十六进制数据:01 03 02 00 A3 F8 3D(如下图),而这串字符中的00 A3,就是其测得的温度数据,将其转换为十进制再除以10即为当前温度,例如上述00 A3,则此时测得的温度就是16.3度,这是前提。。

我通过串口调试助手软件可以读取正常的数值,但是试图通过VB代码实现时,却遇到了一些问题,以下将这代码贴上来:
Dim z() As Byte
Dim y
Dim S As String
z = MSComm1.Input
For y = 0 To UBound(z)
S = S & Hex(z(y))
Next
xx = Val("&H" & Mid(S, 7, 3))
Text1.Text = xx
通过以上代码,我首先试图获取当前串口输出的十六进制数组,再取其从左到右第7位数字开始往后的4个数字,再将其转换为十进制,最终输出在文本框中,但是事实上输出的数据却非常乱,毫无规律可言,求大神赐教到底是什么原因。。
我使用的是一个成品的PT100温度采样模块,根据它的设计,在其接受到输出温度的请求后,会输出一组十六进制数据:01 03 02 00 A3 F8 3D(如下图),而这串字符中的00 A3,就是其测得的温度数据,将其转换为十进制再除以10即为当前温度,例如上述00 A3,则此时测得的温度就是16.3度,这是前提。。

我通过串口调试助手软件可以读取正常的数值,但是试图通过VB代码实现时,却遇到了一些问题,以下将这代码贴上来:
Dim z() As Byte
Dim y
Dim S As String
z = MSComm1.Input
For y = 0 To UBound(z)
S = S & Hex(z(y))
Next
xx = Val("&H" & Mid(S, 7, 3))
Text1.Text = xx
通过以上代码,我首先试图获取当前串口输出的十六进制数组,再取其从左到右第7位数字开始往后的4个数字,再将其转换为十进制,最终输出在文本框中,但是事实上输出的数据却非常乱,毫无规律可言,求大神赐教到底是什么原因。。