[活动专区] 【AT-START-F407测评】+ DHT22温湿度检测

[复制链接]
1243|4
 楼主| jinglixixi 发表于 2021-1-26 16:38 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2021-1-27 19:49 编辑

DHT22是一种数字式温湿度传感器,它以单总线的方式来工作,因此使用它进行温湿度检测比较简单,且节省I/O资源,其检测效果如下图所示。
OLED 屏与MCU的连接关系为:
DAT---PB11
v.png

检测效果图
该引脚输入及高低电平输出的语句定义如下:
#define DHT22_D0_H    GPIOB->BSRE= GPIO_Pins_11
#define DHT22_D0_L    GPIOB->BRE= GPIO_Pins_11
#define DHT22_D0_R    GPIO_ReadInputDataBit(GPIOB,GPIO_Pins_11)
将该引脚配置为输出功能的函数为:
  1. void DHT22_IO_OUT(void)
  2. {
  3. GPIO_InitType GPIO_InitStructure;
  4. RCC_APB2PeriphClockCmd(RCC_APB2PERIPH_GPIOB, ENABLE);
  5. GPIO_StructInit(&GPIO_InitStructure);
  6. GPIO_InitStructure.GPIO_Pins = GPIO_Pins_11;        
  7. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT_PP;
  8. GPIO_InitStructure.GPIO_MaxSpeed = GPIO_MaxSpeed_10MHz;   //50
  9. GPIO_Init(GPIOB, &GPIO_InitStructure);
  10. }

读取温湿度的函数为:
  1. uint8_t DHT22_Read_Data(uint8_t *temp,uint8_t *humi)
  2. {
  3. uint8_t buf[5];
  4. uint8_t i;
  5. DHT22_Rst();
  6. if(DHT22_Check()==0)
  7. {
  8. for(i=0;i<5;i++)
  9. {
  10. buf[i]=DHT22_Read_Byte();
  11. }
  12. if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  13. {
  14. *humi=(buf[0]*256+buf[1])/10;
  15. *temp=(buf[2]*256+buf[3])/10;
  16. }
  17. }else return 1;
  18. return 0;
  19. }

形成显示效果的主程序为:
  1. int main(void)
  2. {
  3. uint8_t  senflag;
  4. AT32_Board_Init();
  5. AT32_OLED_Init();
  6. OLED_Init();
  7. OLED_Clear();
  8. OLED_ShowString(0,0,"AT_START_F407",16);
  9. OLED_ShowString(0,2,"OLED & DHT22",16);      
  10. Delay_ms(1000u);
  11. OLED_ShowString(0,2,"T=  C H=  %RH",16);
  12. senflag=DHT22_Init();   
  13. if(senflag) OLED_ShowString(112,0,"NO",16);
  14. else   OLED_ShowString(112,0,"OK",16);
  15. while(1)
  16. {
  17. if(!senflag)
  18. {
  19. DHT22_Read_Data(&temperature,&humidity);
  20. OLED_ShowNum(16,2,temperature,2,16);
  21. OLED_ShowNum(64,2,humidity,2,16);
  22. }
  23. Delay_ms(500u);
  24. }
  25. }


两只袜子 发表于 2021-1-26 16:48 | 显示全部楼层
希望看到楼主更多的测试成果
 楼主| jinglixixi 发表于 2021-1-27 00:12 | 显示全部楼层
两只袜子 发表于 2021-1-26 16:48
希望看到楼主更多的测试成果

努力!!!
zyting 发表于 2023-8-15 15:54 | 显示全部楼层
你好,可以咨询你一些问题吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部