思路
基於stm32晶元 利用dht11測溫模組把數值顯示在oled顯示屏上
硬體硬體部分可以點我這篇帖子鏈結 關於oled顯示的
硬體部分
本實驗多加了個溫濕度感應模組
元件圖
總效果圖
貼出部分**
//主函式
#include "delay.h"
#include "sys.h"
#include "oled.h"
#include "bmp.h"
#include "key.h"
#include "dht11.h"
#include "usart.h"
int main(void)
while(1)
delay_ms(10)
; t++;
if(t==20)}}
//dht11c檔案(採用的正點原子原始碼)
#include "dht11.h"
#include "delay.h"
//復位空間
void dht11_rst(void)
//等待回應
//返回1表示不存在
//0表示存在
u8 dht11_check(void)
; if(retry>=100)return 1;
else retry=0;
while
(!dht11_dq_in&&retry<100)//dht11再次拉高40~80us ;
if(retry>=100)return 1;
return 0;
}//從dht11讀取乙個數
//返回值為1/0
u8 dht11_read_bit(void)
retry=0;
while(
!dht11_dq_in&&retry<100)//等待變為高電平
delay_us(40)
;//等待40us
if(dht11_dq_in)return 1;
else
return 0;
}//從dht11讀取乙個位元組
//返回值:讀到的數值
u8 dht11_read_byte(void)
return dat;
}//從元件讀取一次資料
//temp:溫度值
//humi:濕度值
//返回值:0,正常;1,讀取失敗
u8 dht11_read_data(u8 *temp,u8 *humi)
if((buf[0]+buf[1]+buf[2]+buf[3]
)==buf[4]
)}else return 1;
return 0;
}//初始化dht11的io口 dq 同時檢測dht11的存在
//返回1:不存在
//返回0:存在
u8 dht11_init(void)
{ gpio_inittypedef gpio_initstructure;
rcc_apb2periphclockcmd(rcc_apb2periph_gpiog, enable)
; //使能pg埠時鐘
gpio_initstructure.gpio_pin = gpio_pin_11; //pg11埠配置
gpio_initstructure.gpio_mode = gpio_mode_out_pp; //推挽輸出
gpio_initstructure.gpio_speed = gpio_speed_50mhz;
gpio_init(gpiog, &gpio_initstructure)
; //初始化io口
gpio_setbits(gpiog,gpio_pin_11)
; //pg11 輸出高
dht11_rst(
); //復位dht11
return dht11_check(
);//等待dht11的回應
完結 需要工程檔案留下郵箱 基於IIC實現溫濕度採集
2 aht20溫濕度感測器 3 實現溫濕度採集 4 總結 iic inter integrated circuit 其實是iicbus簡稱,所以中文應該叫積體電路匯流排,它是一種序列通訊匯流排,使用多主從架構,速率較低。iic就是i2c正確讀法為 i平方c 其有兩個物理介面分別為scl和sda sc...
基於I2C的溫濕度採集
二 aht20溫濕度感測器的資料採集 實驗要求 學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第4章 i2c 讀寫eeprom 原理章節 i2c 通訊協...
基於I2C的溫濕度採集
實驗要求 一 解釋 軟體i2c 和 硬體i2c 二 程式設計實現溫濕度採集 三 結果 學習i2c匯流排通訊協議,完成基於i2c硬體協議的aht20溫濕度感測器的資料採集,並將採集的溫度 濕度值通過串列埠輸出。具體任務 1 解釋什麼是 軟體i2c 和 硬體i2c 閱讀野火配套教材的第23章 i2c 讀...