告訴你個調試方法你可以參考一下
在顯示之前你先把數據通過串口發到電腦, 如果數據是正常的, 這說明就是你的顯示函數有問題.如果數據不正常 說明是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);
|