使用 I2C 通信协议在 STM32 上的温度收集和序列显示

      最后更新:2021-11-19 14:18:59 手机定位技术交流文章

      文章内容
      使用 STM32F103 完成基于 I2C 协议的 AHT20 温度湿度传感器的收集,并通过串口输出收集的温度和湿度信息。

      1. 什么是“软件 I2C” 和“硬件 I2C”?
      2. 根据AHT20数据文件,热湿度数据每2秒钟收集一次,并通过序列连接传送至顶端机器(win10)。

      目录

      • I2C是主流通信协议。
        • I2C是I2C通讯协议
        • 一.2 I2C实现模式 -- -- 硬件 I2C和软件 I2C
      • 2个用于温度和湿度的系列数据收集显示
        • 2.1 具体要求
        • 2.2 准备工具
        • 2.3 代码分析
        • 2.4 效果演示
          • 2.4.1 硬件电路连接
          • 序列显示 2. four.2
      • 3 总结
      • 4 参考资料

      I2C是主流通信协议。

      I2C是I2C通讯协议

      I2C/IIC通信协议(综合电路)是菲律宾国际铁路和港口管理局发明的,目前用于系统内许多国际通信机构之间的通信,因为其足迹、简单硬件和可扩缩性都很低,不需要外部接收和发送设备,如UART和CAN。

      • I2C 物理层
        在这里插入图片描述
        I2C 是辅助设备的主要线路。 “ 居室” 指由多个设备共享的信号线。 多 I2C 通信设备可以在 I2C 通信总线上连接, 以支持多个通信主机和多个通信操作员 。
        单一辆I2C公共汽车只有两条公共汽车线:一条双线数据线(SDA)和一条字符串时钟线(SCL)。数据线用来表示数据,而时钟线用来同步数据接收和发送。
      • I2C 协议层
        I2C协议具体规定通信启动和停止信号、数据有效性、回应、仲裁、时钟同步和地址广播。
      1. 空闲状态
        I2C总线的两个信号线,即SDA和SCL,同时处于高纬度,并被定性为公共汽车自由度。目前,每个装置的输出水平场效应管处于封闭状态,即释放公共汽车,每条信号线都拉动电源。
      2. 通信启动和关闭信号(通常由主机生成):
        在这里插入图片描述
      3. 数据有效性
        在这里插入图片描述
        数据必须在SCL上升之前准备好,在下降之前保持稳定。
      4. 应答信号 ACK
        在这里插入图片描述
        数据线在发件人传送的每字节的时钟脉冲 9 中释放, 接收者发出响应信号。 当响应信号为低水平时, 给出有效响应位置( ACK 缩写位置) 的规定, 表明接收者已成功收到字节; 当响应为高水平时, 定义了非响应位置( NACK ) ; 接收者接收字节通常不成功 。
      • I2C 基本读写方法
        在这里插入图片描述
        这个博客有更多信息: I2C 通讯协议(二) - 数据读写

      1.2 I2C实现模式 -- -- 硬件I2C和软件I2C

      • 硬件 I2C
        STM32芯片直接使用外部I2C硬件。
        当使用时,外部设置生成标准序列协议时间序列,只要相关内存得到指定。在激活 I2C 外部设置后,只需要登记册1 的位置,此时外部设置控制相应的 SL 和 SDA 线自动生成 I2C 启动信号,消除内核直接控制踢电高度的需要。
      • 软件I2C
        根据I2C的时间序列直接控制触发器的输出信号(如果收到数据,读读SDA水平),使I2C通信能够进行I2C通信。 " 软件模拟协议 " 方法被称为软件I2C模式,因为它是直接控制GPO高水平和低级别生成通信时间序列的直接控制,需要CPU控制基状态。
      • 硬件和软件I2C比较
      1. I2C硬件的使用更为复杂,I2C模拟程序更为明显。
      2. I2C硬件比模拟更快,可与DMA连用。
      3. 每根管脚都能模拟I2C,而硬件只能在一个管脚上进行,而I2C模拟功能相对多功能。

      2个用于温度和湿度的系列数据收集显示

      2.1 具体要求

      • 每两秒收集一次温度和湿度数据。
      • 通过序列港向顶层计算机(Win10)传送收集的数据。

      2.2 准备工具

      硬件工具:

      • 发展董事会 STM32F103
      • AHT20 Chip(收集温度和湿度数据)
        AHT20 芯片特别信息和参考代码参考网络介绍,链接:
        http://www.aosong.com/class-36.html
      • TTL USB 转转模块
      • 杜邦线若干
      • 计算机 (窗口 10)

      软件工具:

      • keil 5 MDK
      • mcuisp 燃烧软件
      • Sscom5(所有提取代码:luha)是序列传输助手。

      2.3 代码分析

      • 可以通过此链接访问完整的代码工程文件 。
        https://pan.baidu.com/s/1wGnfv12O5y0lZ4koCs5AEQ
        提取码:luha
      • 部分代码分析
      1. AHT20 芯片初始化
      1. AHT20 芯片数据读取和保存
      1. main.c 函数

      2.4 效果演示

      2.4.1 硬件电路连接

      • TTL USB 转转模块与核心小组 STM32F103的连接
      TTL USB 转转模块 核心小组 STM32F103
      GND G
      3V3 3.3
      RXD A9
      TXD A10
      • AHT20 芯片与核心小组 STM32F103的连接
      AHT20 芯片 核心小组 STM32F103
      SCL PB6
      SDA PB7
      VCC 3V3
      GND GND

      注意此应用程序使用“ 软 I2C ”, 而 PB6 和 PB7 则使用全球定位系统 。

      序列显示 2. four.2

      • 编译和创建 hex 文件后完成刻录 。
      • 连接到序列端口并启动它。
      • 串口显示效果如下
        在这里插入图片描述
        如所示,序列端口每两秒钟提供温度湿度数据,当AHT20芯片模块以一只手持有时,温度湿度数据就会增加。

      3 总结

      本条主要了解I2C公共汽车通信协议,主要是为了了解I2C协议的基本读写过程以及I2C书写和阅读程序的基本阶段,在对低温采集任务适用I2C协议时,理解并研究了所使用的温度湿度传感器的具体操作。
      这是提交人第一次学会使用I2C协议收集温度和湿度,

      4 参考资料

      1. I2C通信协定的理由(一)
      2. 使用 I2C 通信协议的温度测量
      3. 使用 I2C 接口收集温暖湿度(AHT20)
      4. "St.M.32 -F103零危险游戏指南"#pdf##
        提取码:luha

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

          热门文章

          文章分类