新手上路
- 积分
- 27
- 金钱
- 27
- 注册时间
- 2019-7-2
- 在线时间
- 7 小时
|
发表于 2019-12-2 14:29:40
|
显示全部楼层
我是如下修改的,是可以正常显示小数部分的,我的板子是探索者,原理都一样
DHT11.c修改
u8 DHT11_Read_Data(u8 *temp0,u8 *humi0,u8 *temp1,u8 *humi1)
{
u8 buf[5];
u8 i;
DHT11_Rst();
if(DHT11_Check()==0)
{
for(i=0;i<5;i++)//读取40位数据
{
buf[i]=DHT11_Read_Byte();
}
if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
{
*humi0=buf[0];
*temp0=buf[2];
*humi1=buf[1];
*temp1=buf[3];
}
}else return 1;
return 0;
}
主程序修改
LCD_ShowString(30,130,200,16,16,"DHT11 OK");
POINT_COLOR=BLUE;//设置为蓝色字体
LCD_ShowString(30,150,200,16,16,"Current Temp: . C");
LCD_ShowString(30,170,200,16,16,"Current Humi: . %");
while(1)
{
if(t%10==0)//每100ms读取一次
{
DHT11_Read_Data(&temperature0,&humidity0,&temperature1,&humidity1); //读取温湿度值
LCD_ShowNum(30+40+64,150,temperature0,2,16); //温度整数
LCD_ShowNum(30+40+64,170,humidity0,2,16); //湿度整数
LCD_ShowNum(30+40+64+24,150,temperature1,2,16); //温度小数
LCD_ShowNum(30+40+64+24,170,humidity1,2,16); //湿度小数
}
|
|