我现在使用UART发送float类型的数据,是拆分成四个字节发送的,如下:
typedef union{
float fData;
unsigned char cData[4];
}ADCData;
使用Keil单步调试的时候没有问题,数据发送也没有问题,但当我在上位机使用C语言合成输出的时候就不对了。
上位机C程序如下:
ADCData temp;
temp.cData[0]=0x40;
temp.cData[1]=0x13;
temp.cData[2]=0x5D;
temp.cData[3]=0x99;
printf("Voltage:%.4f\n",temp.fData);
结果根本不是浮点数,而是
-8.03318178508000000000e+307
请问这是怎么回事啊? |