基于STM32F1的DHT11模块问题,无法充值积分,那支付宝/微信转10元?

2019-07-21 01:19发布

用的KEIL5。用的芯片是STM32F103VET6。PCB是自己画的。模块没有问题,在别人板子上测试过。
跑的是例程。我不存在引脚没改对的问题。可能有问题的就是寄存器有没有写对。我用的是C1。如下所示,应该没写错?
#define DHT11_IO_IN()  {GPIOC->CRL&=0XFFFFFF0F;GPIOC->CRL|=8<<4;}
#define DHT11_IO_OUT() {GPIOC->CRL&=0XFFFFFF0F;GPIOC->CRL|=3<<4;}程序死在下面。也就是无法检测到模块。
u8 DHT11_Check(void)           
{   

        u8 retry=0;
        DHT11_IO_IN();//SET INPUT         
  while (DHT11_DQ_IN&&retry<100)//DHT11&#187;áà-μí40~80us
        {
                retry++;
                delay_us(1);
        };         
        if(retry>=100)return 1;
        else retry=0;
  while (!DHT11_DQ_IN&&retry<100)//DHT11à-μíoó&#187;á&#212;ù′&#206;à-&#184;&#223;40~80us
        {
                retry++;
                delay_us(1);
        };
        if(retry>=100)return 1;            
        return 0;
}

猜测可能是时序问题,但时序不是模块自带的?我也不会改。
模块没有问题,代码是示例,引脚什么都改了,所以可能是板子的问题?
希望有大佬能看看。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。