本帖最后由 yinyue01 于 2015-12-2 21:49 编辑
采用超核的固件库实现DHT11温湿度采集和串口发送,超核库的有许多便捷的设置函数,如delay函数、GPIO位带操作等。 数字温湿度传感器DHT11采用单总线输出数据,单次数据包共5Byte(40bit),包括先发送高位,数据格式为:湿度整数+湿度小数+温度整数+温度小数+校验和,各占1 Byte,校验和为前4个Byte相加,由此可计算出温湿度的数值。 DHT11通讯过程的时序图如下图所示,空闲状态时总线为高电平,MCU发送开始信号,拉低总线等待DHT11响应(至少18ms),之后拉高总线20~40μs;DHT11接收到开始信号,在其结束后发送80μs的低电平响应信号,之后拉高总线40~50μs,再拉低40~50μs,接着输出数据;主机读取到响应信号后开始接收数据;一次数据传输完成,DHT11拉低总线50μs,之后总线进入空闲状态。 根据以上分析,编写DHT11数据采集程序: DHT11数字输出端Dout连接到K64的PC16口,主程序如下: 运行结果如下: 附程序: |