需要材料:正點原子的mini開發板,DHT11溫濕度傳感器正點原子mini板光盤不包含DHT11實驗,此處通過修改其提供的探索者開發板
光盤標準例程-庫函數版本\實驗31 DHT11數字溫濕度傳感器實驗中引腳做的mini板版本實驗以作補充(DATA引腳接mini板PC13腳)
在燒錄好程序后請將開發板復位,在實驗中發現當DHT11接mini板3.3V電源時,傳感器不工作,接5V電源時能正常工作(我也不知道啥原因)
1.jpg (25.01 KB, 下載次數: 85)
下載附件
工程文件夾
2022-2-12 21:56 上傳
實驗現象.jpg (1.85 MB, 下載次數: 63)
下載附件
實驗結果
2022-2-12 21:56 上傳
以下STM32單片機代碼可以在光盤里面 實驗10 的基礎上添加DHT11文件夾并修改main函數得到,dht11.h dht11.c main.c如下- #ifndef __DHT11_H
- #define __DHT11_H
- #include "sys.h"
- //IO方向設置
- #define DHT11_IO_IN() {PCin(13);} //PC13輸入模式
- #define DHT11_IO_OUT() {PCout(13);} //PC13輸出模式 GPIOC->MODER&=~(3<<(13*2));GPIOC->MODER|=1<<13*2;
- ////IO操作函數
- #define DHT11_DQ_OUT PCout(13) //數據端口 PC13
- #define DHT11_DQ_IN PCin(13) //數據端口 PC13
- u8 DHT11_Init(void);//初始化DHT11
- u8 DHT11_Read_Data(u8 *temp,u8 *humi);//讀取溫濕度
- u8 DHT11_Read_Byte(void);//讀出一個字節
- u8 DHT11_Read_Bit(void);//讀出一個位
- u8 DHT11_Check(void);//檢測是否存在DHT11
- void DHT11_Rst(void);//復位DHT11
- #endif
復制代碼
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- #include "lcd.h"
- #include "dht11.h"
-
- int main(void)
- {
- u8 t=0;
- u8 temperature;
- u8 humidity;
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置系統中斷優先級分組2
- delay_init(); //初始化延時函數
- uart_init(115200); //初始化串口波特率為115200
-
- LED_Init(); //初始化LED
- LCD_Init(); //LCD初始化
-
- POINT_COLOR=RED;//設置字體為紅色
- LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");
- LCD_ShowString(30,70,200,16,16,"DHT11 TEST");
- LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
- LCD_ShowString(30,110,200,16,16,"2014/5/7");
- while(DHT11_Init()) //DHT11初始化
- {
- LCD_ShowString(30,130,200,16,16,"DHT11 Error");
- delay_ms(200);
- LCD_Fill(30,130,239,130+16,WHITE);
- delay_ms(200);
- }
- LCD_ShowString(30,130,200,16,16,"DHT11 OK");
- POINT_COLOR=BLUE;//設置字體為藍色
- LCD_ShowString(30,150,200,16,16,"Temp: C");
- LCD_ShowString(30,170,200,16,16,"Humi: %");
- while(1)
- {
- if(t%10==0)//每100ms讀取一次
- {
- DHT11_Read_Data(&temperature,&humidity); //讀取溫濕度值
- LCD_ShowNum(30+40,150,temperature,2,16); //顯示溫度
- LCD_ShowNum(30+40,170,humidity,2,16); //顯示濕度
- }
- delay_ms(10);
- t++;
- if(t==20)
- {
- t=0;
- LED0=!LED0;
- }
- }
- }
復制代碼Keil代碼下載:
STM32F103 mini板DHT11數字溫濕度傳感器實驗.7z
(1.97 MB, 下載次數: 120)
2022-2-13 05:03 上傳
點擊文件名下載附件
STM32F103 mini板DHT11數字溫濕度傳感器實驗 下載積分: 黑幣 -5
|