找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2129|回复: 2
收起左侧

STM32串口获取dth11温湿度 源程序

[复制链接]
ID:962230 发表于 2021-8-25 17:13 | 显示全部楼层 |阅读模式
这是一个简单的stm32f103c8t6核心板获取温湿度并通过串口输出数据。

单片机源程序如下:
  1. #include "stm32f10x.h"
  2. #include "usart.h"
  3. #include "delay.h"
  4. #include "DHT11.h"

  5. /*
  6. *读取温湿度传感器DHT11的值,并用串口打印出来
  7. */

  8. void clock_init(void);

  9. u8 temp = 0,humi = 0;


  10. /**************************************************************************
  11. 函数名:int main(void)
  12. 参数说明:无
  13. 返回值:无
  14. 函数作用:主函数
  15. ***************************************************************************/
  16. int main(void)
  17. {       
  18.          
  19.    clock_init();
  20.          uart_init(115200);                //初始化串口
  21.          printf("wecome to DHT11");
  22.          
  23.          
  24.          //初始化DHT11(有BUG,第一次上电总是失败,按一下复位按钮又能进了)
  25.          if(!DHT11_Init()){
  26.                  printf("\r\n EEROR! THE DHT11 HAS NO RESPOND...");
  27.                  //while(1);
  28.          }
  29.          printf("\r\n THE DHT11 HAS RESPOND");
  30.          Delay_ms(10);                //这里延时10ms主要是因为,刚刚接收到响应信息,要等DHT11发送完信息
  31.          
  32.          while(1)
  33.          {
  34.                  if(DHT11_Read_Data(&temp,&humi))
  35.                         printf("\r\n temp:%d,humi:%d",temp,humi);
  36.                  else
  37.                  printf("\r\n EEROR! THE DHT11 HAS NO RESPOND...");//由于是库函数编程,不能准确把握函数的执行时间,
  38.                                                                                                                                                                                                                                         //所以会经常出现这条警告信息
  39.                  Delay_ms(100);
  40.          }
  41.           
  42. }


  43. /**************************************************************************
  44. 函数名:void clock_init(void)
  45. 参数说明:无
  46. 返回值:无
  47. 函数作用:开启高速外部时钟,
  48. ADCCLK设置为12MHZ,        SYSCLK设置为72Mhz,PCLK1设置为36MHZ,PKLC2设置为72mhz
  49. ***************************************************************************/
  50. void clock_init(void)
  51. {
  52.         RCC->CR = 0x1010000;
  53.         RCC->CFGR = 0x1DC402;
  54. }
复制代码

所有代码51hei附件下载:

DHT11C串口接收温湿度信息.7z

183.27 KB, 下载次数: 36, 下载积分: 黑币 -5

这是一个简单的stm32f103c8t6核心板获取温湿度并通过串口输出数据

评分

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

查看全部评分

回复

使用道具 举报

ID:584195 发表于 2021-8-26 08:01 | 显示全部楼层
楼主,你的延时用的是什么,是阻塞式的延时还是用定时器做的延时,很想学习一下!
回复

使用道具 举报

ID:116773 发表于 2021-8-26 11:38 | 显示全部楼层
标题有点误导,应改为“STM32串口发送DHT11温湿度”更贴切些。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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