计算机与电子秤串口通信问题

happycsq happycsq 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人是一个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 = 24
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
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
happycsq
COM/DCOM/COM+ 864 成员 3,658 内容