STM32C8T6+DHT11在OLED上显示 温度,湿度
平台 STM32T103C8T6 传感器:DHT11
1.DTH11的工作原理
在这里我就不读说了,在我的另一篇博客有说明,关于对DHT11单总线时序图的理解 这里我就直接略过,。
2.程序
程序这块我自己直接用了正点原子的战舰例程里面的DHT11部分内容, 这个是DHT11.c
#include "dht11.h"
#include "delay.h"
//复位DHT11
void DHT11_Rst(void)
{
DHT11_IO_OUT(); //SET OUTPUT
DHT11_DQ_OUT=0; //拉低DQ
delay_ms(20); //拉低至少18ms
DHT11_DQ_OUT=1; //DQ=1
delay_us(30); //主机拉高20~40us
}
//等待DHT11的回应
//返回1:未检测到DHT11的存在
//返回0:存在
u8 DHT11_Check(void)
{
u8 retry=0;
DHT11_IO_IN();//SET INPUT
while (DHT11_DQ_IN&&retry=100)return 1;
else retry=0;
while (!DHT11_DQ_IN&&retry=100)return 1;
return 0;
}
//从DHT11读取一个位
//返回值:1/0
u8 DHT11_Read_Bit(void)
{
u8 retry=0;
while(DHT11_DQ_IN&&retry |