xianting77 发表于 2017-3-19 16:36:48

CYPRESS PSoC 4200L 驱动DHT11,配置成双向口,数据读取不成功

使用的网友们调试通过的代码,由于SHT 既有输出,又有输入,将其配置成双向口, 是否就不需要手动配置成,输入或者输入了啊,但是很被悲惨,我就是不能正确监测到DHT11 ,我的IO配置对么,是什么原因么,是否可以有高手支招哈


//Reset DHT11
void DHT11_Rst(void)          
{               
// DHT11_IO_OUT();        
    //SET OUTPUT
DHT11_DATA_Clr();                                                                                         //GPIOA.0=0
DH11_Write(0);
CyDelay(25);   
                                                                                        //Pull down Least 18ms
DHT11_DATA_Set();                                                                                         //GPIOA.0=1
CyDelayUs(20) ;                                                                                   //Pull up 20~40us
}



uint8_t DHT11_Check(void)           
{   
uint8_t retry=0;
   volatileuint8_ttemp,temp1;
//DHT11_IO_IN();                                                                                                //SET INPUT       
while (DHT11_DQ_IN&&retry<100)                                //DHT11 Pull down 40~80us
{
    retry++;
    Delay_us(1);
}       

if(retry>=100)
    return 1;
else
    retry=0;

while (!DHT11_DQ_IN&&retry<100)                                //DHT11 Pull up 40~80us
{
    retry++;
    Delay_us(1);
}

if(retry>=100)
    return 1;                                                                                                                //chack error          

return 0;
}
页: [1]
查看完整版本: CYPRESS PSoC 4200L 驱动DHT11,配置成双向口,数据读取不成功