告诉你个调试方法你可以参考一下
在显示之前你先把数据通过串口发到电脑, 如果数据是正常的, 这说明就是你的显示函数有问题.如果数据不正常 说明是dht30的数据处理或者初始化有问题, 然后再根据串口收到的数据分析 进一步缩小范围, , 你的程序太长了 几千行, 半天都看不完 , 光看程序基本不可能定位问题所在的.
感觉你289行的这句可能有问题
if((temperatre >= -9.9 ) && (temperatre <=99) && (humidity>=0) && (humidity <=99)) //************
{
humiture[0] = temperatre; //
humiture[2] = humidity; //
}
把下面这几个数据串口输出看一下
tem = ((buff[0]<<8) | buff[1]);
hum = ((buff[3]<<8) | buff[4]);
temperatre = (175.0 *(float)tem/65535.0 - 45);
humidity = (100.0 * (float)hum/65535.0);
|