打印

如何检测DS18B20是否存在?先谢过

[复制链接]
369|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
博斯|  楼主 | 2018-6-30 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是原子的程序,,,,,,主要是这个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;
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

412

主题

412

帖子

0

粉丝