找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1334|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

怎么解決STM32103C8T6連接DHT11傳感器中,代碼的檢測模塊一直返回1這個(gè)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:463392 發(fā)表于 2023-6-11 16:46 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
怎么解決STM32103C8T6連接DHT11傳感器中,代碼的檢測模塊一直返回1這個(gè)問題
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:208591 發(fā)表于 2023-6-11 18:03 | 只看該作者
這問題聽著怎么都不通順  新手嗎  俺也一樣    視頻有很多  搜搜  一步一步跟著做
回復(fù)

使用道具 舉報(bào)

板凳
ID:377919 發(fā)表于 2023-6-11 22:06 | 只看該作者
首先你檢查下代碼的問題 ,如果代碼你確定沒問題在懷疑外設(shè)
回復(fù)

使用道具 舉報(bào)

地板
ID:1083538 發(fā)表于 2023-6-12 13:43 | 只看該作者
#include "dht11.h"

static GPIO_InitTypeDef  GPIO_InitStructure;
void dht11_pin_mode(GPIOMode_TypeDef pin_mode)
{
        if(pin_mode == GPIO_Mode_Out_PP)
        {
                /* 配置PG9為輸出模式,讓這根引腳具有輸出高低電平的功能 */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;                                //第15號引腳
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                        //輸出模式
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                //引腳的速度最大為100MHz
        }
        else
        {
                /* 配置PG9為輸入模式 */
                GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;                                //第15號引腳
                GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;                        //輸入模式
                GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                //引腳的速度最大為100MHz
        }
        GPIO_Init(GPIOA, &GPIO_InitStructure);       
}

//dht11初始化函數(shù)
void dht11_init(void)
{
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO,ENABLE);
        GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE);//關(guān)閉jtag,使能SWD,可以用SWD模式調(diào)試
        dht11_pin_mode(GPIO_Mode_Out_PP);
        PAout(15)=1;
}

//dht11開始信號發(fā)送函數(shù)
int32_t dht11_start(void)
{
        uint32_t t=0;
        dht11_pin_mode(GPIO_Mode_Out_PP);
        PAout(15)=0;
        delay_ms(18);
        PAout(15)=1;       
        delay_us(30);
        dht11_pin_mode(GPIO_Mode_IPD);
        t=0;
        while(PAin(15))
        {
                delay_us(1);
                t++;
                if(t>1000)
                        return -1;
        }
        t=0;
        while(PAin(15)==0)
        {
                delay_us(1);
                t++;
                if(t>150)
                        return -2;
        }       
        t=0;
        while(PAin(15))
        {
                delay_us(1);
                t++;       
                if(t>150)
                        return -3;
        }                       
        return 0;
}

//dht11讀取數(shù)據(jù)函數(shù)
uint8_t dht11_read_byte(void)
{
        uint32_t i=0;
        uint8_t d=0;
        for(i=0; i<8; i++)
        {
                while(PAin(15)==0);
                delay_us(40);
                if(PAin(15))
                {
                        d|=1<<(7-i);
                        while(PAin(15));
                }
        }
        return d;
}

//讀取dht11數(shù)據(jù)保存在pbuf中
int32_t dht11_read_data(uint8_t *pbuf)
{
        int32_t rt=-1;
        uint32_t i=0;
        uint8_t check_sum=0;
        rt = dht11_start();
        if(rt < 0)
                return rt;

        for(i=0 ; i<5; i++)
        {
                pbuf[i]=dht11_read_byte();
        }
        check_sum = pbuf[0]+pbuf[1]+pbuf[2]+pbuf[3];
        if(check_sum != pbuf[4])
                return -4;
        delay_us(100);
        return 0;
}
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表