基于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;
}

猜测可能是时序问题,但时序不是模块自带的?我也不会改。
模块没有问题,代码是示例,引脚什么都改了,所以可能是板子的问题?
希望有大佬能看看。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
起个昵称真难
1楼-- · 2019-07-22 10:37
D:application截屏图片2019-05-15_140603.png
warship
2楼-- · 2019-07-22 14:14
起个昵称真难 发表于 2019-5-15 14:07
请问时钟的配置是怎么做的呢?

以我上面的程序来说,那些延时多少微秒延时多少毫秒必须是准的,这个是建立在系统时钟基础上的,具体你可以搜索一下我的有关延时的帖子。
warship
3楼-- · 2019-07-22 17:44
本帖最后由 warship 于 2019-5-15 19:46 编辑
起个昵称真难 发表于 2019-5-15 14:07
请问时钟的配置是怎么做的呢?

http://www.openedv.com/forum.php?mod=viewthread&tid=275994可以试用一下此帖4楼的代码
warship
4楼-- · 2019-07-22 18:49
 精彩回答 2  元偷偷看……

一周热门 更多>