串口通讯问题,bcd转不了十进制
4).串行口命令码:本仪器作为从机与主机通信,接收命令后执行相应操作,命令码为单字节。
2DH:复位仪器
20H:向主机回送所有参数数据(V,A,W,PF,HZ),每个参数占5个字节,共5*5=25个字节。数据格式见串行数据结构
(5)。数据结构
本仪器在接到命令码后,回送相应的参数数据,每个参数由5个字节组成前4字节表示尾数,后1字节表示阶码,数据格式采用科学记忆法即小数点在第一个bcd码之后,其结构如下:
尾数(4字节):小数点;数码
阶码(1字节):数符;阶符;阶码
阶码最高为数符,次高位为阶码,(0代表下数,1代表负数),低6位为阶码值,范围为0~63H,例:
1.2345678*10^4其浮点数为12345.678,接收字节次序:78,56,34,12,04
-8.7654321*10^-2其浮点数为0.087654321,接收字节次序:21,43,65,87,12
上面是产品说明书上的内容,好多错误,我参照之后接收到了字符串,但是实在不知道怎样分析得到的数据,希望各位做过这个的能给个建议,源码最好,本人急用
这是我用加了hex函数接收到的字符串
405845CC28
202020A0E8
4040404028
E040404028
20E04040E8
不加也能收到,但是经常不完整,下面是一段
1685178344
1616160820
4016160820
1640160820
1616400844
谢谢各位帮忙,用的仪器是杭州威博的电参数测量仪,说明书好多错误,客服什么都不懂,大家以后不要用!请大家帮我分析一下数值,怎么搞?小弟先谢谢了。这个码实在不知道怎么转换成10进制的,能看懂的帮忙 啊 !
我把接收的源码也贴上
Private Sub MSComm1_OnComm()
Dim Buffer() As Byte
Dim str As String
Dim i As Integer
Select Case MSComm1.CommEvent
Case 2
Buffer = MSComm1.Input
For i = 0 To UBound(Buffer)
strRec = strRec & Right("0" $ Hex(Buffer(i), 2))
Next i
str = strRec
End Select
End Sub
各位大侠,我的qq是503922432,如果有能帮助解决的,小弟感激不尽,主要是读上来的数据实在看不懂,不能显示,没办法解码,谢谢了
[解决办法]
顶
[解决办法]
再围观一会儿