STM32F103C8T6温湿度模块软件设计

4.1单总线通信软件设计
4.1.1温湿度模块软件设计

单总线是美国DALLAS公司推出的外围串行扩展总线技术。与SPI、I2C串行数据通信方式不同,它采用单根信 线传输。这种传输方式信 线上既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点。

单总线通信是主从结构,也就是只有主机呼叫从机从机才能应答,所以主机访问模块时必须按照严格的访问时序,不然模块不予回应,不同的模块单总线通信的时序会有不同,本系统使用的单总线模块为DHT11,所以就以DHT11模块为例介绍。

步骤一:初始化,主机去唤醒DHT11模块。具体操作为单片机的I/O设置为输出,设置单片机的I/O设置为输出步骤如图4.1所示。同时输出低电平,且低电平保持时间不能小于18ms,如图4.2所示。然后单片机的I/O设置为输入状态,等待DHT11模块回应。

图4.2 唤醒DHT11模块

步骤二:DHT11模块回应。DHT11的DATA引脚检测到外部信 有低电平时,等待外部信 低电平结束,延迟后DHT11的DATA引脚处于输出状态,输出 80微秒的低电平作为应答信 ,紧接着输出 80 微秒的高电平通知外设准备接收数据,STM32F103C8T6对应代码如图4.3所示。

图4.4(a) 从DHT11读取一个位的函数

图4.5 从DHT11读取一次数据的函数

步骤四:单片机处理数据。DHT11模块会返回40bit的数据,其中分别为8bit湿度整数数据,8bit湿度小数数据,8bi温度整数数据,8bit温度小数数据,8bit校验和。如果8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据之和等于8bit校验和就说明数据传输正确。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月14日
下一篇 2022年6月15日

相关推荐