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]