在http://blog.csdn.net/weixin_40109283/article/details/79093966博客中,介绍了基于DragonBoard 410c的温湿度检测的硬件设计.现在我们来讲讲驱动部分的实现过程。
微处理器和DHT11之间的通信过程:
1)DHT11上电后(大于1秒),测试环境温湿度数据,并记录数据,同时DHT11的DATA数据线由上拉电阻拉高一直保持高电平;此时DHT11的DATA引脚处于输入状态,时刻检测外部信号。
2)微处理器的I/O设置为输出同时输出低电平,且低电平保持时间不能小于18ms,然后微处理器的I/O设置为输入状态,由于上拉电阻,微处理器的I/O即DHT11的DATA数据线也随之变高,等待DHT11作出回答信号。
3)DHT11的DATA引脚检测到外部有低电平时,等待外部信号低电平结束,延迟后DHT11的引脚处于输出状态,输出80微秒的低电平作为应答信号,紧接着输出80微秒的高电平通知外设准备接收数据,微处理器的I/O此时处于输入状态,检测到I/O有低电平后,等待80微秒的的高电平后的数据接收。
4)由DHT11的DATA引脚输出40位数据,微处理器根据I/O电平的变化接收40位数据,位数据