一、DHT11接口说明
DHT11对外一共有三根引脚,VCC,GND和DATA,通过DATA可以与MCU进行通信,采用单总线数据格式,一次通讯时间4ms左右,数据格式为:
8bit湿度整数数据+8bit湿度小数数据
+8bi温度整数数据+8bit温度小数数据
+8bit校验和
本次的实验中DATA与MCU的PA5相连。
二、通讯时序图
1.开始信号
总线空闲状态为高电平,主机把总线拉低等待DHT11响应,主机把总线拉低必须大于18毫秒,保证DHT11能检测到起始信号。DHT11接收到主机的开始信号后, 等待主机开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换到输入模式(在STM32中,由于一个GPIO口在同一时间内只可以作为发送端或者接受端,所以在MCU发送开始信号后应该及时将GPIO切换至输入模式来接收DHT的响应信号
),在响应信号结束后开始数据传输
#define DHT11_HIGH HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET)
#define DHT11