1. 实验要求
a. 对温度湿度的测量
b. 通过串口将温度、湿度输出
c. 设置温度的阈值,通过按键进行设置
d. 当温度超过了阈值,LED灯常亮,蜂鸣器报警
e. 按键控制串口输出当前的信息
2. 接口设计
由参考资料可知:《DHT11中文资料 ----- C语言例程》
(1) 一次完整的数据传输为40bit,高位先出
数据格式:8bit 湿度整数数据 + 8bit 湿度小数数据
+ 8bit 温度整数数据 + 8bit 温度小数数据
+ 8bit 校验和
数据传输正确时校验和数据等于 “8bit 湿度整数数据 + 8bit 湿度小数数据
+ 8bit 温度整数数据 + 8bit 温度小数数据” 所得结果的未8位
(2) 原理图
(3) DHT11温湿度获取流程
GPIO:通信规则 1. 起始信号 STM32 通过DATA 输出高->低电平 持续时间>18ms 2. 等待响应 STM32 先将引脚电平拉高 DATA切换输入模式,延时20-40us 读取引脚上的电平状态, 如果引脚电平为低电平则DHT11响应 3. 响应信号 DHT11收到启动信号,发送80us的低电平响应信号 4. 准备输出 DHT11会将DATA拉高 80us的时间 5. 温湿度数据发送 40bit 高位先发 湿度整数最开始的8bit 0:50us低电平 26-28us高电平 1:50us低电平 70us高电平 6. 结束输出 DATA引脚由MCU拉高