开发指南中的 DS18B20的例程while(DHT11_Init())的问题

2019-08-17 01:09发布

        while(DHT11_Init())        //DHT11初始化
        {
                LCD_ShowString(30,130,200,16,16,"DHT11 Error");
                delay_ms(200);
                LCD_Fill(30,130,239,130+16,WHITE);
                delay_ms(200);
        }                                                       

LCD_ShowString(30,130,200,16,16,"DHT11 OK");
while(DHT11_Init()) 是DHT11_Init()为一,也就是成功了的时候循环
然而显示DHT11 Error
否则显示DHT11 OK
这是怎么回事,可能我的理解有问题,希望大神指教


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
1条回答
戍国魂
2019-08-17 06:59
很尴尬,这么简单的问题,
/等待 DS18B20 的回应
//返回 1:未检测到 DS18B20 的存在
//返回 0:存在
u8 DS18B20_Check(void)
{
u8 retry=0;
DS18B20_IO_IN();//SET PA0 INPUT
while (DS18B20_DQ_IN&&retry<200)
{
retry++;
delay_us(1);
};
if(retry>=200)return 1;
else retry=0;
while (!DS18B20_DQ_IN&&retry<240)
{
retry++;ALIENTEK 战舰 STM32F103 V3 开发板教程
487
STM32F1 开发指南(库函数版)
delay_us(1);
};
if(retry>=240)return 1;
return 0;
}

一周热门 更多>