串口通讯中接收和发送float类型数据

使用共用体来解决数据的编解码问题,共用体可以使不同的数据类型来共享相同的地址空间。

#include <stdio.h>
#include <string.h>

int main(void)
{

     union result
     {
         float d;
         unsigned char data[4];
     }r1,r2;
// 特别需要注意的是在单片机中int float double 类型的字长和PC机中是不一样的,需要注意
     r1.d=7.215487 23131;
     r2.data[0]=r1.data[0];
     r2.data[1]=r1.data[1];
     r2.data[2]=r1.data[2];
     r2.data[3]=r1.data[3];
    printf("byte0= %d byte1= %d byte2= %d byte3= %d r1=%f r2=%f \n",r1.data[0],r1.data[1],r1.data[2],r1.data[3],r1.d,r2.d);
   getchar();
   getchar();
   return 0;

}

使用上述的方法,如果需要在PC与MCU之间通过串口来传送浮点数double/float就可以了,两边都使用共用体,一次传输一个BYTE,然后依次放入char型数组中,使用的时候直接使用对应的浮点数就可以了。

原文:https://blog.csdn.net/wilylcyu/article/details/51848166

猜你喜欢

转载自blog.csdn.net/kucoffee12/article/details/87871566