使用STM32和I2C收集温度(AHT20)

      最后更新:2021-11-18 23:01:37 手机定位技术交流文章

      案文:本条主要解释I2C协议,以及I2C嘴所附的热感应器AHT20,并通过嘴链向上部机器显示温度湿度数据。

      一、何为I2C协议

      (一)定义

      Philips发明了I2C通讯协议(Inter-Inter-Inter-Inter-Inter-Inter-Cirectory),由于它只有几尺高,硬件既简单又可扩缩,不需要外部接收和发送设备,如USART、CAN,等等,它现在通常用于系统内许多集成电路之间的通信。

      (二)I2C物理层

      在这里插入图片描述
      (1) 它是支助设备的公共汽车线路,“住房”是指几个装置共用的信号线,多I2C通信装置可在I2C通信公共汽车上连接,以支持多个通信主机和多个通信运营商。
      (2) 单辆I2C公共汽车只有两条公共汽车线:一条双向系列数据线(SDA)和一条时钟(SCL),数据线用于信号数据,而时钟线用于同步数据接收和发送。

      (三)I2C协议层

      I2C协议具体规定通信启动和停止信号、数据有效性、回应、仲裁、时钟同步和地址广播。
      开始和停止信号在下图中描述。
      在这里插入图片描述
      下图说明了数据的有效性,自失能系统数据传输只是功能性的,而SCL处于高强度状态。
      在这里插入图片描述
      下图描述了一个响应和非响应信号。
      在这里插入图片描述

      (四) I2C硬件和I2C软件

      1.硬件I2C

      只要定义了必要的内存,外部设置就为标准序列协议产生一个时间序列。在激活 I2C 外部设置后,只需要一个登记册 1 的位置,在此点,外部设置控制相应的 SCL 和 SDA 线自动生成 I2C 启动信号,消除内核直接控制踢相关设置的电高度的需要,只要定义了必要的内存,标准序列协议就产生一个时间序列。在激活 I2C 外部设置后,只需要一个登记册 1 的位置,在此点,外部设置控制相应的 SCL 和 SDA 线自动生成 I2C 初始信号,消除内核直接控制踢电高度的需要。

      2.软件I2C

      在管理I2C启动信号时,有必要控制用作高输出的SCL线的全球定位系统,然后控制用作从高向低水平过渡的SDA线的全球定位系统,最后控制SCL线切换到低水平,从而产生典型的I2C启动信号。

      当硬件 I2C 管脚不足时,可使用软件 I2C 。

      二. 收集AHT20低温体的过程

      下列官员可就AHT20的相关信息进行出租:
      AHT20
      主函数代码

      模块读取函数

      I2C 读取输出温度湿度函数 。

      三、运行效果

      PA9与RB模块RX连接,PA10与USB模块TX连接,SCL与PB6连接,SDA与PB7连接。
      在这里插入图片描述
      运行效果如下图
      在这里插入图片描述
      室内温度大约为20度,湿度大约为60度,当你将手掌放在舱内时,温度和湿度分别逐步上升至23度和70度。

      四、总结

      实验代码主要基于其他大家伙, 但它只是小小的修改, 而且很可能是AHT20在 I2C 协议上一步一步地读取数据的方式。温度感应器感觉是正确的, 尽管环境温度的变化可能会发生。

      五、参考文章

      使用 I2C 接口收集温暖湿度(AHT20)

      完整代码

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13558.html

          热门文章

          文章分类