| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1348 人关注过本帖
标题:[求助]计算机与电子秤串口通信问题
只看楼主 加入收藏
happycsq
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-4-28
收藏
 问题点数:0 回复次数:2 
[求助]计算机与电子秤串口通信问题

小弟是一个VB初学者,有一台电子秤,想将电子秤的数据采集后在电脑上显示出来,但是每次显示的都是3个字节的乱码。
电子秤的数据格式如下:
每次发送6帧,每帧定义如下:
每10Bit为一数据帧,Bit1:起始位,Bit2-Bit9:数据位,Bit10:停止位
第一帧:D0-D7——OFFH(起始位)
第二帧:D0-D2——为小数点位
D3-D4——当前工作模式:00-记重模式,01-记数模式,10-百分比模式
D5 ——1表示重量为负,0表示重量为正
D6 ——1表示重量稳定,0表示重量不稳定
D7 ——1表示重量溢出,0表示重量未溢出
第三帧:D0-D7——BCD码1(显示数值的最低字节)
第四帧:D0-D7——BCD码2(显示数值的中间字节)
第五帧:D0-D7——BCD码3(显示数值的最高字节)
第六帧:D0-D7——记重模式下的单位:1表示单位是磅,0表示单位是公斤
下面是小弟的程序,希望各位高手指点一下小弟。
Dim indata As Variant

Private Sub Form_Load()
MSComm1.CommPort = 1 '...使用Com1口
MSComm1.Settings = "9600,n,8,1" '...设置通讯参数
MSComm1.InBufferSize = 40
MSComm1.InputMode = comInputModeBinary
MSComm1.InputLen = 0
MSComm1.RThreshold = 1
MSComm1.SThreshold = 1
MSComm1.PortOpen = True '...打开串口
End Sub

Private Sub MSComm1_OnComm()
Select Case MSComm1.CommEvent

Case comEvReceive '...有接收事件发生

indata = MSComm1.Input

Text1.Text = indata '…text1实时显示数显表的数据

MSComm1.InBufferCount = 0 '...清空输入寄存器

End Select


End Sub

搜索更多相关主题的帖子: 电子秤 串口 计算机 通信 
2007-04-28 11:23
huangwy
Rank: 1
等 级:新手上路
威 望:2
帖 子:297
专家分:0
注 册:2007-3-23
收藏
得分:0 

你应该测试一下InBufferCount的长度
另外每一帧10bit,你怎么可以直接把它显示到Text呢
不出现乱码才怪呢
你要根据定义对数据进行转换

2007-04-28 15:29
偶是天才
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-4-20
收藏
得分:0 
2007-04-28 21:35
快速回复:[求助]计算机与电子秤串口通信问题
数据加载中...
 
   



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

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