u8 DHT11_Check(void) { u8 retry=0; DHT11_IO_IN(); //SET INPUT while (DHT11_DQ_IN&&retry<100) //DHT11 Pull down 40~80us { retry++; Delay_us(1); } if(retry>=100) return 1; else retry=0; while (!DHT11_DQ_IN&&retry<100) //DHT11 Pull up 40~80us { retry++; Delay_us(1); } if(retry>=100) return 1; //chack error return 0; }
//等待DHT11的回应 //返回1:未检测到DHT11的存在 //返回0:存在 u8 DHT11_Check(void) { u8 retry=0; DHT11_IO_IN();//SET INPUT while (DHT11_DQ_IN&&retry<100)//DHT11会拉低40~80us { retry++; delay_us(1); }; if(retry>=100)return 1; else retry=0; while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后会再次拉高40~80us { retry++; delay_us(1); }; if(retry>=100)return 1; return 0; }