Rain_King 发表于 2014-10-28 09:45 
如果这样子,表示你定义的数据类型肯定出错了.......你最好把代码也贴出来..... ...
我的程序:void get_T_and_H(unsigned int *p_H,unsigned int *p_T)
{
union
{
unsigned int i;
float f;
}humi_val,temp_val; //定义两个共同体,一个用于湿度,一个用于温度
unsigned char error,checksum;
error=0;
error+=s_measure((unsigned char*) &temp_val.i,&checksum,0x02); //温度测量
error+=s_measure((unsigned char*) &humi_val.i,&checksum,0x01); //湿度测量
if(error!=0) s_connectionreset(); //如果发生错误,系统复位
else
{
humi_val.f=(float)(humi_val.i); //转换为浮点数
temp_val.f=(float)(temp_val.i); //转换为浮点数
calc_sth11(&humi_val.f,&temp_val.f); //修正相对湿度及温度
//*p_DP=(unsigned int)(calc_dewpoint(humi_val.f,temp_val.f)*10+1000);//输出露点
if(temp_val.f<-30) temp_val.f=-30;
if(temp_val.f>100) temp_val.f=100;
*p_T=(unsigned int)(temp_val.f*10+1000); //返回温度结果 0对应-100.0℃ 1即-99.9℃ 这里允许最小-30.0℃
*p_H=(unsigned int)(humi_val.f*10); //返回湿度结果
}
}
主函数的调用:get_T_and_H(®[0x08],®[0x09]);
定义的数组:unsigned int reg[16];
|