久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3101|回復: 1
打印 上一主題 下一主題
收起左側

STM32 DHT11串口打印源程序

[復制鏈接]
跳轉到指定樓層
樓主
1.硬件準備:
USB轉TTL工具一個
核心板STM32F103C8T6
DHT11傳感器
2.軟件準備:
串口調試助手
2.硬件連線
USB轉TTL的RX----32板子上的PA9
USB轉TTL的TX----32板子上的PA10
DHT11的DAT連接PB14

3.程序源碼
  1. #include "dht11.h"
  2. //////////////////////////////////////////////////////////////////////////////////  
  3. #include "delay.h"         
  4. //////////////////////////////////////////////////////////////////////////////////
  5. //復位DHT11
  6. void DHT11_Rst(void)   
  7. {                 
  8. DHT11_IO_OUT();  //SET OUTPUT
  9.     DHT11_DQ_OUT=0;  //拉低DQ
  10.     delay_ms(20);     //拉低至少18ms
  11.     DHT11_DQ_OUT=1;  //DQ=1
  12. delay_us(30);      //主機拉高20~40us
  13. }
  14. //等待DHT11的回應
  15. //返回1:未檢測到DHT11的存在
  16. //返回0:存在
  17. u8 DHT11_Check(void)     
  18. {   
  19. u8 retry=0;
  20. DHT11_IO_IN();//SET INPUT  
  21.     while (DHT11_DQ_IN&&retry<100)//DHT11會拉低40~80us
  22. {
  23.   retry++;
  24.   delay_us(1);
  25. };  
  26. if(retry>=100)return 1;
  27. else retry=0;
  28.     while (!DHT11_DQ_IN&&retry<100)//DHT11拉低后會再次拉高40~80us
  29. {
  30.   retry++;
  31.   delay_us(1);
  32. };
  33. if(retry>=100)return 1;     
  34. return 0;
  35. }
  36. //從DHT11讀取一個位
  37. //返回值:1/0
  38. u8 DHT11_Read_Bit(void)     
  39. {
  40.   u8 retry=0;
  41. while(DHT11_DQ_IN&&retry<100)//等待變為低電平
  42. {
  43.   retry++;
  44.   delay_us(1);
  45. }
  46. retry=0;
  47. while(!DHT11_DQ_IN&&retry<100)//等待變高電平
  48. {
  49.   retry++;
  50.   delay_us(1);
  51. }
  52. delay_us(40);//等待40us
  53. if(DHT11_DQ_IN)return 1;
  54. else return 0;     
  55. }
  56. //從DHT11讀取一個字節
  57. //返回值:讀到的數據
  58. u8 DHT11_Read_Byte(void)   
  59. {        
  60.     u8 i,dat;
  61.     dat=0;
  62. for (i=0;i<8;i++)
  63. {
  64.      dat<<=1;
  65.      dat|=DHT11_Read_Bit();
  66.     }         
  67.     return dat;
  68. }
  69. //從DHT11讀取一次數據
  70. //temp:溫度值(范圍:0~50°)
  71. //humi:濕度值(范圍:20%~90%)
  72. //返回值:0,正常;1,讀取失敗
  73. u8 DHT11_Read_Data(u8 *temp,u8 *humi)   
  74. {        
  75.   u8 buf[5];
  76. u8 i;
  77. DHT11_Rst();
  78. if(DHT11_Check()==0)
  79. {
  80.   for(i=0;i<5;i++)//讀取40位數據
  81.   {
  82.    buf[i]=DHT11_Read_Byte();
  83.   }
  84.   if((buf[0]+buf[1]+buf[2]+buf[3])==buf[4])
  85.   {
  86.    *humi=buf[0];
  87.    *temp=buf[2];
  88.   }
  89. }else return 1;
  90. return 0;     
  91. }
  92. //初始化DHT11的IO口 DQ 同時檢測DHT11的存在
  93. //返回1:不存在
  94. //返回0:存在      
  95. u8 DHT11_Init(void)
  96. {  
  97.   GPIO_InitTypeDef  GPIO_InitStructure;
  98.   
  99.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);  //使能PB端口時鐘

  100.   GPIO_InitStructure.GPIO_Pin = DHT11_PIN;     //PG11端口配置
  101.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //推挽輸出
  102.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  103.   GPIO_Init(DHT11_IO, &GPIO_InitStructure);     //初始化IO口
  104.   GPIO_SetBits(DHT11_IO,DHT11_PIN);       //PG11 輸出高
  105.       
  106. DHT11_Rst();  //復位DHT11
  107. return DHT11_Check();//等待DHT11的回應
  108. }
復制代碼

4.程序最終效果
程序.7z (138.83 KB, 下載次數: 99)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:294737 發表于 2020-7-17 16:31 | 只看該作者
下載不能成功[img]C:\Users\HP\Desktop[20200717162933/img]
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区91 | 成人黄色av网址 | 亚洲a毛片| 欧美一区二区三区国产精品 | 欧美国产日韩在线观看成人 | 一a一片一级一片啪啪 | 日本不卡一区二区三区在线观看 | 538在线精品 | 在线一区 | 亚洲精品一 | 一区二区三区久久久 | 亚洲欧美一区二区三区在线 | 久久欧美精品 | 亚洲一区二区三区四区av | 亚洲欧美一区二区三区在线 | 欧美国产日韩在线观看成人 | 欧美视频在线播放 | 日韩在线中文字幕 | 日韩网站在线 | 日本精品在线播放 | 秋霞a级毛片在线看 | 在线āv视频 | 99精品网| 精品91| 亚洲一区二区精品视频 | 在线高清免费观看视频 | 国产成人亚洲精品 | 欧美四虎 | 97久久精品午夜一区二区 | 亚洲女人天堂成人av在线 | 国产乱码精品1区2区3区 | 亚洲永久免费观看 | 99久久婷婷国产综合精品电影 | 日本欧美黄色片 | 久久久久久黄 | 久久一级免费视频 | 国产一区二区三区四区五区3d | 国产视频一区二区 | 精品久久久久久久久久久久久 | 成人黄色在线 | 久久久久久亚洲欧洲 |