| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 935 人关注过本帖
标题:VB中读取电子称的值
只看楼主 加入收藏
word486
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-8-24
结帖率:60%
收藏
已结贴  问题点数:20 回复次数:3 
VB中读取电子称的值
我想请教一下,在读取电子称的值得时候,如何读取。我没有搞过这个东东,看了一下别人写的代码,我看不明白,请高手指点一下,帮我解释一下。代码是这样的:(重点帮我分析一下红色字体的代码,我有点看不懂)。
Private Sub GetWeight_Value()
    On Error Resume Next
    Dim BytesReceived() As Byte
    Dim buffer As String
    Dim HData As String
    Dim i As Integer
                buffer = Comm1.Input                  '接收数据至字符串中
            BytesReceived() = buffer                '将数据转入Byte数组中
             For i = 0 To UBound(BytesReceived)      '显示结果以十六进制显示
                If Len(Hex(BytesReceived(i))) = 1 Then
                    HData = HData & "0" & Hex(BytesReceived(i))
                Else
                    HData = HData & Hex(BytesReceived(i))
                End If
                Recievedata = HData
                          Next   
    Call Calculatescale
End Sub
Public Sub Calculatescale()
    Dim a, b, c, d, e As Integer
    e = Mid(Recievedata, 18, 1)
    a = Mid(Recievedata, 20, 1)
    b = Mid(Recievedata, 24, 1)
    c = Mid(Recievedata, 26, 1)
    d = Mid(Recievedata, 28, 1)
    Weight_value = (e * 10000 + a * 1000 + b * 100 + c * 10 + d * 1) / 1000
    Weight_value = Format(Weight_value, "0.0000")
        Comm1.OutBufferCount = 0 '清除发送缓冲区
    Comm1.InBufferCount = 0 '清除接收缓冲区
    Comm1.PortOpen = False
End Sub
搜索更多相关主题的帖子: 字符串 分析 电子 
2011-08-30 08:51
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
去查一下mid函数的用法,就是字符串中取子串用的,还有就是串口通信控件的用法,MsComm。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-08-30 18:30
word486
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-8-24
收藏
得分:0 
你说的那个我看过,我就是不知道这个   
    e = Mid(Recievedata, 18, 1)
    a = Mid(Recievedata, 20, 1)
    b = Mid(Recievedata, 24, 1)
    c = Mid(Recievedata, 26, 1)
    d = Mid(Recievedata, 28, 1)
,为什么读18,20,24,26,28这几位?
还有这个 Weight_value = (e * 10000 + a * 1000 + b * 100 + c * 10 + d * 1) / 1000
乘10000,1000,100,10,1的原因?
2011-08-31 08:07
pauljames
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:千里冰封
威 望:9
帖 子:1555
专家分:10000
注 册:2011-5-8
收藏
得分:10 
具体读哪个位,要跟通信协议有关系。至于weight_value中的10000,1000...1,是a,b,c,d,e分别对应的权重。

经常不在线不能及时回复短消息,如有c/单片机/运动控制/数据采集等方面的项目难题可加qq1921826084。
2011-08-31 20:19
快速回复:VB中读取电子称的值
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019784 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved