初级会员

- 积分
- 141
- 金钱
- 141
- 注册时间
- 2017-10-30
- 在线时间
- 51 小时
|

楼主 |
发表于 2018-6-14 16:14:38
|
显示全部楼层
补充一下,这是另外的程序,这样就完整了。
u8 DHT22_Read_Bit(void) //读一位
{
while(DHT22_DQ_IN == 0);// 直到电平拉高后跳出
delay_us(40);
if(DHT22_DQ_IN == 1)//保证度过了70us的高电平。
return 1;
else
return 0;
}
u8 DHT22_Read_Byte(void) //读一个字节
{
u8 i,dat;
dat=0;
for (i=0;i<8;i++)
{
dat|=DHT22_Read_Bit();
dat<<=1;
}
return dat;
}
//开始读取数据
Humi_H=DHT22_Read_Byte(); //湿度的高8位数据
Humi_L=DHT22_Read_Byte(); //湿度的低8位数据
Temp_H=DHT22_Read_Byte(); //温度的高8位数据
Temp_L=DHT22_Read_Byte(); //温度的低8位数据
Check_data=DHT22_Read_Byte(); //校验字节数据
这个图片是我程序运行的效果,指示灯一直在闪烁,说明程序一直在运行,但是我的温湿度数据一直是0.不知怎么回事。
|
|