当plc传给我的从站为浮点数时,我收到的的是符合IEEE754国际标准的四字节形式,但是我想把他通过数码管显示出去,我怎么处理这个译码的过程呢?想了好久没有想明白。比如说在plc端传一个浮点数11.375,我的从站底层收到的就是41 36 00 00(16进制四字节形式)。我在单片机里怎么处理才能正确显示11.375。 (我用的单片机是AT89S52)
问题以解决:
1.首先转换一下浮点数,大概意思如下;
main()
{
union {
char abc[4];
float d;
}x;
x.abc[3]=0x41;
x.abc[2]=0x36;
x.abc[1]=0;
x.abc[0]=0;
printf("%f",x.d);
}
2. 得到 x.d 这个浮点数后,再用sprintf(buffer,"%f",x.d),这样缓冲区buffer里面就是 “11.37500”啦,哈哈!!