|
各位高手帮帮忙吧,我真要崩溃了。我要把从串口采回来的数据转换成float 型的,用了三种办法都不行,
请高手给指点一下,我该怎么做。
我采回来的16进制数值如下:7E为帧头,每四个16进制数组成一个浮点数,
7E 18 1F 03 F3 F3 98 06 30 1E C3 18 30 66 FC 98 FE 60 03 7E 30 78 0C 60 03 80 E6 78 30 E6 E0 E0 7E 1E F0 1E 30 06 FF 18 C0 9E 1E 80 98 80 1E 00 60 0C 60 30 00 00 00 1E 00 1E 00 00 00 1E 00 FE 9E FE 00 06 3F 80 98 86 9E 06 30 1E 0C 86 98 7E 03 18 30 80 FE 78 CC 66 03 7E 30 60 0F 18 CC 66 33 78 30 1E CC 78 0C E6 9E 1E 30 18 0C 18 F3 60 03 1E 30 00 F8 06 CF 18 CF 1E F0 66 03 FE E6 80 E6 06 F0 66 C3 06 C3 80 86 06 F0 9E FE 00 00 78 FE 06 03 1E 30 18 0C E6 78 86 00 1E 30 E6 E0 06 0F 7E 30 78 C3 1E F3 78 30 60 F0 66 CF 06 C3 E0 E6 66 F0 1E C3 9E 1E 00 18 30 80 9E FE 86 F8 9E 78 98 9E 78 70 F3 CF 00 18 F0 1E 3C 86 86 06 30 9E FE 00 F8 FE 9E F8 18 03 1E 30 FE E6 18 CF E0 FE 00 86 98 80 F8 06 0F 7E 30 E0 E0 1E FF 1E CC 60 F0 E6 06 33 18 3C 66 F0 9E FE E0 F8 9E FE 18 30 E6 98 80 F8 66 F0 E0 7E 1E 1C 0F 78 7E 70 03 FC 9E FE 06 C3 86 F8 00 FE 9E FE 00 06 C0 1E CC 1E 03 1E 30 9E E0 60 33 60 FF 00 86 F8 78 03 18 0F 7E 30 E0 86 98 66 FC 60 F0 98 E6 98 E0 80 9E 66 F0 06 3C E0 FE F8 E0 1E 30 98 98 66 3F 9E E6 E6 7E 86 E0 F8 9E E0 06 F0 86 7E
方法1:
matchedchar=Buffer+ loopnumber_A+2;
Fmt (val, "%f<%s", matchedchar);
writeBuffer[numItemsInWriteBuffer] =*val;
方法2:
CopyString (tt, 0, Buffer, 2,4);
force=atof(tt);
writeBuffer[numItemsInWriteBuffer] = force;
方法3:
CopyString (tt, 0, Buffer, 2,4);
force=(float)*tt;
writeBuffer[numItemsInWriteBuffer] = force;
[ 本帖最后由 l-huang 于 2008-9-28 16:08 编辑 ] |
|