使用 I2C/SPI 公共汽车和 OLED 显示器进行温度测量

      最后更新:2021-11-22 19:20:03 手机定位技术交流文章

      一. 根据I2C协议,为AHT20温度湿度传感器收集数据。

      1. I2C协议

      (1)定义

      Philips发明了I2C通讯协议(Inter-In综合电路),现在该协议广泛用于系统内许多集成电路(IC)之间的通讯,因为它的脚足较少,硬件简单且可扩缩,不需要USART和CAN等外部接收和发送设备。

      (2) 物理图层和礼仪图层和礼仪图层

      ①物理层
      I2C是辅助设备的主要线路。 多个 I2C 通信设备可以连接在一起,为多个通信主机和众多通信操作员服务。 I2C 公共汽车只有两条公共汽车线,一条双向线数据线(SDA)和一条字符串时钟线(SCL )。

      I2C通讯装置往往通过下列方式连接:
      在这里插入图片描述
      ②协议层
      它主要描述通信的启动和停止信号、数据有效性、反应、仲裁、时钟同步和地址广播。

      通讯信号开始和结束
      在这里插入图片描述

      当 I2C 通信时, SDA 数据传输只有在SCL 处于高空时才有效。SDA 信号线用于传输数据,SDA 信号线用于确保数据同步。
      在这里插入图片描述

      继续转递低级别答复或高级别答复作为答复。
      在这里插入图片描述

      (3) I2C硬件和I2C软件

      ①硬件I2C
      STM32芯片直接使用外部I2C硬件。
      使用方法: 只要相关内存被配置, 外部设置会生成常规序列协议的时间序列。 在初始化 I2C 外部设置后, 只需要注册 1 的位置, 此时外部设置控制相应的 SCL 和 SDA 线自动生成 I2C 启动信号, 消除内核直接控制踢电高度的需要 。

      ②软件I2C
      直接使用CPU内核来控制全球定位系统组织在I2C协议所要求的低层次和高层次的输出,从而模拟I2C。
      当调控I2C信号的启动时,控制GPIO的高端输出为SCL线,然后在此期间控制GPIO的高到低端开关为SDA线,最终控制SCL线的低端开关为正常的I2C信号。

      区别:
      为了调控踢脚,硬件I2C需要外部设置,而仿制I2C的软件可能使用任何通用的GPIO。

      二. 温度收集程序 AHT20

      AHT20芯片有详细描述。

      AHT20芯片

      主要代码

      主函数:

      AHT20芯片的使用:

      温度读取:

      3. 实现效果

      连接方式:
      PA9与USB模块RX连接,PA10与USB模块TX连接,SCL与PB6连接,SDA与PB7连接。
      请添加图片描述

      下图为室温下:
      在这里插入图片描述
      用你的手覆盖下图象。 温度正在上升, 正如您所看到的 。
      在这里插入图片描述

      二. 使用OLED测量AHT20温度和湿度。

      1. 主要代码

      主函数:

      读取温度并显示:

      2. 效果实现

      连线方式:
      RA9 至 RX USB 模块,PA10 至 TX USB 模块
      温度湿度传感器的SCL与PB6连接,而其SDA与PB7连接。
      OLED:
      D1接PB15,
      CS接PB11,
      RES接PB12,
      DC接PB10,
      D0接PB13.

      烧录:
      请添加图片描述
      显示:
      请添加图片描述
      请添加图片描述

      三. 在 OLED 幻灯片上显示您的学习编号和名称。

      一. OLED 和 SPI 开场白。

      OLED:
      有机发光二极管(OrganicLight-Emitting Diode, OLED),又称有机电子激光显示器和有机发光半导体(Organic Energoproducation 显示器, OLED),是有机半导体和光材料,用电场注入和合成成光。

      SPI:
      SPI协议是由摩托罗拉提议的一项通信协议(连续周边界面),即一个连续外围装置界面,这是一个高速、全时通信巴士,在ADC、LCD和其他需要更高通信率的装置与MCU之间广泛使用。

      SPI物理层
      SPI通讯使用三条公共汽车线路和三条片段线路,即SCK、MOSI和ISO。

      在这里插入图片描述
      SPI协议层

      与 I2C的类似,SPI协议定义了通讯信号开始和结束、数据有效性、时钟同步等环节。
      通信时序:
      在这里插入图片描述

      2.字模

      PCtoLCD 字体模板下载
      字模

      打开之后设置一下:
      文本的前缀和后缀应从括号中删除。
      在这里插入图片描述
      输入您想要接收的文本,单击以生成字体,下面将显示一个字数。
      在这里插入图片描述

      3. 主要代码

      主函数:

      输出代码:

      添加字模代码:
      定位 oedfont.h 并添加预生成的字体 。
      在这里插入图片描述

      4. 运行效果

      烧录:
      在这里插入图片描述
      这一相关性与上述温度湿度联系是一致的。
      效果:
      请添加图片描述

      四、总结

      由于这个小实验,我对AHT20如何通过 I2C 协议读取数据有一般的理解,在引用大人物的博客后,热湿感应器很容易通过串口导出,温度在 OLED 上显示,只是添加 OLED 显示代码。然后,你可以使用 OLED 滚动文本和数字,这一次你使用7 位 OSLed SPI 协议,然后你通过字体软件将字体添加到大人物的代码中,然后你可以将字体添加到大人物的代码中, 你可以改变 OLED 内部的函数参数, 以达到预期的位置和长度。 这些小实验都很有趣, 所以如果你小心, 基本上没有错误, 如果它不起作用, 那么可能是 AHT20 芯片或 OLED 。

      五、参考文献

      AHT20温度和湿度数据收集
      完整代码
      OLED显示温度和湿度。
      完整代码
      基于 SPI 的 OLED 显示器
      OLED滚动显示
      完整代码

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

          热门文章

          文章分类