这是原子的程序,,,,,,主要是这个240和200,不清楚干嘛的,,
//等待DS18B20的回应
//返回1:未检测到DS18B20的存在
//返回0:检测到存在
u8 DS18B20_Check(void)
{
u8 retry=0;
DS18B20_IO_IN();//SET PA0 INPUT #define DS18B20_IO_IN() {GPIOA->CRL&=0XFFFFFFF0;GPIOA->CRL|=8<<0;}
while (DS18B20_DQ_IN&&retry<200)// #define DS18B20_DQ_IN PAin(0)
{
retry++;
delay_us(1);
};
if(retry>=200)return 1;
else retry=0;
while (!DS18B20_DQ_IN&&retry<240)// #define DS18B20_DQ_IN PAin(0)
{
retry++;
delay_us(1);
};
if(retry>=240)return 1;
return 0;
} |