找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1479|回复: 0
收起左侧

STM32连接DHT11传感器监控温湿度源程序

[复制链接]
ID:843379 发表于 2021-9-14 11:15 | 显示全部楼层 |阅读模式
使用KEIL 5 打开
解压文件后弹窗点击选择  Cancel
否则编译会出现错误
如果第一次弹窗没有点击取消,则重新解压。
51hei.png
51hei.gif
单片机源程序如下:
  1. /**************************************
  2. * 文件名  :main.c
  3. * 描述    :串口显示温湿度,当温度高于设定阈值时,LED闪烁,当湿度低于设定阈值时,蜂鸣器鸣响。         
  4. * 实验平台:CH32最小系统 基于CH32F103C8T6
  5. * 库版本  :ST3.0.0
  6. *********************************************************/

  7. #include "delay.h"
  8. #include "sys.h"
  9. #include "usart.h"         
  10. #include "led.h"               
  11. #include "dht11.h"

  12.         
  13. //测试主函数

  14. #define LED_ON   GPIO_SetBits(GPIOC, GPIO_Pin_13)
  15. #define LED_OFF  GPIO_ResetBits(GPIOC, GPIO_Pin_13)
  16. #define Buzzer_ON   GPIO_SetBits(GPIOC, GPIO_Pin_14)
  17. #define Buzzer_OFF  GPIO_ResetBits(GPIOC, GPIO_Pin_14)

  18. void Buzzer_Init()
  19. {
  20.     GPIO_InitTypeDef p;
  21.    
  22.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  23.    
  24.     p.GPIO_Pin = GPIO_Pin_14;
  25.     p.GPIO_Mode = GPIO_Mode_Out_PP;
  26.     p.GPIO_Speed = GPIO_Speed_50MHz;
  27.     GPIO_Init(GPIOC, &p);
  28. }

  29. int main(void)
  30. {         
  31.          u8 temp,humi;
  32.          LED_Init();
  33.          Buzzer_Init();
  34.          delay_init();                     //延时函数初始化         
  35.          NVIC_Configuration();          //设置NVIC中断分组2:2位抢占优先级,2位响应优先级
  36.          uart_init(9600);                 //串口初始化为9600
  37.          printf("串口测试\r\n");     
  38.    while(DHT11_Init())
  39.          {                 
  40.      
  41.      printf("传感器设置错误\n");
  42.                  delay_ms(500);   
  43.         }                        
  44.          while(1)
  45.          {
  46.            DHT11_Read_Data(&temp,&humi);
  47.                  printf("temp:%d  humi:%d \n",temp,humi);
  48.                  delay_ms(500);
  49.            
  50.                  
  51.                                 if(temp>30)
  52.                                 {
  53.                                         LED_ON;
  54.                                         printf("LED On\n");
  55.                             delay_us(200000);
  56.                                         LED_OFF;
  57.                             delay_us(200000);
  58.                                 }        
  59.         else
  60.                                 {
  61.                                         LED_OFF;
  62.                                 }
  63.                                 if(humi>30)
  64.                                 {
  65.                                         Buzzer_ON;
  66.                             printf("Buzzer On\n");
  67.           delay_us(200000);
  68.                                 }        
  69.         else
  70.                                 {
  71.                                         Buzzer_OFF;
  72.                                 }
  73.                          delay_us(500000);
  74.          }
  75. }
复制代码

所有代码51hei附件下载:
基于STM32F103C8T6+DHT11.7z (1.15 MB, 下载次数: 43)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表