求大神帮忙啊!
cc2530 时钟32M
DS18B20无法完成初始化啊!!!
求救命,我的代码如下
uint8 DS18B20_Init() //DS18B20初始化/复位
{
uint8 rest=1,i=3;
while((0!=rest)&&(0!=(--i))) //超时判断
{
SET_OUT(); //设置IO口输出
T_SENSOR=1; // ① 拉高
asm("NOP");
T_SENSOR=0; // ③ 拉低
Delay_us(700); // ④ 延时480~960us
T_SENSOR=1; // ⑤ 拉高
SET_IN(); // IO方向为输入 DS18B20->CC2530
Delay_us(50); //⑥ 等待T_SENSOR 变低(15~60us)
asm("NOP");
rest=T_SENSOR; // rest=0 初始化成功,rest=1 失败
}
Delay_us(700); //⑦ 延时 至少480us
SET_OUT(); //设置IO口输出
T_SENSOR=1; //⑧ 拉高
return (rest) ;
}
void Delay_us(uint16 n) //延时us函数
{
while(n--);
}
是不是延时函数有问题,导致时序出问题!
用的IAR Embedded Workbench IDE 编译器
求赐延时函数!!!!!!!!!!
一周热门 更多>