lxppkyou 发表于 2010-11-21 22:11:22

AT91SAM7S64+ds18b20有问题了

想问下有大侠知道为什么用AT91SAM7S64控制DS18B20的时候,读取忙标志一直是1,感觉ARM不让温度传感器输出0,我时序没问题,请高手指点。谢谢
下面是忙检测代码:
uint32 Init_DS18B20(void)//18B20初始化
{
        uint32 x;
       
        *AT91C_PIOA_OER|=BIT0;//IO方向为输出
        *AT91C_PIOA_PER|=BIT0;//PIO控制
        SET_DS;    //DQ置高
        delay_nus(2);//稍做延时
        CLR_DS;    //将DQ拉低
        delay_nus(500); //精确延时 大于 480us
        SET_DS;    //拉高总线
        delay_nus(10);
        *AT91C_PIOA_ODR|=BIT0;//IO方向为输入,方便读取数据
        //*AT91C_PIOA_PER|=BIT11;//PIO控制
        x=(*AT91C_PIOA_PDSR&0x00000001);
        delay_nus(5);
        return(x);
}
通过测SET_DS,CLR_DS都是正常的,就是X读回来的都是1,请问原因何在?
页: [1]
查看完整版本: AT91SAM7S64+ds18b20有问题了