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

      最后更新:2021-11-26 23:54:26 手机定位技术交流文章

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

      • 一. I2C协定的简明摘要
        • 1、 I2C协议
          • I2C 物理层第1号
          • 1.2协议层
        • 2、 软硬件I2C
      • 二. 温度采集 AHT20
        • 1、代码准备工作
          • 1.1下载示例代码
          • 1.2 理解代码
          • 1.3代码编译
        • 2、硬件连接
          • 2.1连接方式
          • 2.2烧录
        • 3、结果显示
      • 三、OLED屏显
        • 1、SPI协议简介
          • 一个 SPI( 物理层) 连接
          • 1.2 SPI 通信议定书(协议层)
        • 2、OLED原理
        • 3. 汉点编码概念和显示
          • 3.1汉字点阵编码
          • 3.22 OLED点
        • 4. 显示学校的身份证和姓名。
          • 4.1代码准备工作
          • 4.2硬件连线
          • 4.3结果显示
        • 5. 温度和湿度水平表明AHT20。
        • 长字符应显示在六张或六张以上的幻灯片上。
          • 6.1生成字模
          • 6.2修改代码
          • 6.3编译烧录
          • 6.4滚动结果显示
      • 四、总结
      • 五、参考文献

      问题描述

      一. I2C协定的简明摘要

      1、 I2C协议

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

      I2C 物理层第1号

      图24-1说明了通信设备之间的典型联系。

      在这里插入图片描述
      其物理层包括以下特征:
      (1) 它是一个辅助设备公共汽车线路,“住房”是指由I2C通信公共汽车上许多装置共用的信号线路。
      ,它可能与几台I2C通信设备连接,支持多个通信主机和操作员。
      (2) 每辆I2C公共汽车只有两条公共汽车线:一条双线数据线(SDA)和一条时钟线。
      (SCL). 数据线用于代表数据,而时钟线用于同步数据接收和传输。
      (3) 与公交车相连的每个装置都有自己的地址,东道方可将其指定给其他装置。
      间的访问。
      (4) 主线通过向上和向下推动获得动力,当 I2C 设备为空时,产生相当大的阻力,当所有设备为空时,不产生阻力。
      当自由、高抗力出口时,高阻力阻力将公共汽车拉到高水平。
      (5) 为了避免在众多主机同时使用公共汽车时发生数据冲突,将利用仲裁来确定哪些设备将被占用。
      总线。
      (6) 有三种传输方式:正常模式传输率为100kbit/s,快速模式传输率为400kbit/s,高速模式传输率为100kbit/s。
      低于3.4百万比特/秒,尽管大多数I2C设备尚未处理高速模式。
      (7) 公交车的最大容量400pF,限制可与同一辆公交车连接的IC的数量。

      1.2协议层

      I2C协议具体规定通信启动和停止信号、数据有效性、回应、仲裁、时钟同步和地址广播。
      1I2C 基本读写过程
      首先,如图24-2、图24-3、图24-4所示,考虑I2C通信进程的基本结构。
      在这里插入图片描述
      在这里插入图片描述
      创建第一个信号后, 所有主机都开始等待从地址信号( SLAVE_ ADPRESS) 进行下一次广播。 在 I2C 公共汽车上, 每个设备地址是唯一的, 当主机广播地址与特定设备的地址匹配时, 设备被选中, 数据信号被未选中的设备忽略。 根据 I2C 协议, 这可以是机器地址的 7 位或 10 位。 当主机位于位置 1 时, 它会从机器上读取 。 在从机器上获得匹配地址后, 主机会从机上返回响应( ACK) 或不响应( NACK) 信号, 而主机只有在收到响应后才能继续发送或接收数据 。
      写数据

      读数据

      读和写数据

      2. 用于启动和终止对话的信号
      在这里插入图片描述
      ③ 数据有效性
      I2C使用SDA信号线发送数据,并利用SSL信号线同步数据(见图24-6)。SDA数据线在SCL每时钟周期提供一份数据。 在传输时,SL中SDA传输的数据在高水平即SCL有效,即当SCL为低水平时,SDA数据不可接受,SDA数据通常为下一个数据指示做好准备。每个数据传输以字节为单位,每个传输的字节数量不受限制。
      在这里插入图片描述
      ④ 地址及数据方向
      I2C 协议允许设备地址为 7 或 10 比特, 尽管7 比特的真实地址被更普遍地使用。 离设备地址附近的数据位置被用来表示数据传输的方向, 即数据方向( R/W-) 8 或 第 11 位置 。
      在这里插入图片描述
      读取数据方向的关键机会是放弃对由机器控制的SDA信号线的控制,主机接收信号,数据方向写下来,主机接收信号,主机接收信号,主机控制SDA。
      ⑤ 响应
      当接收的数据端收到I2C传送的一小节或地址时,必须取消对另一方的回答(ACK)信号,委托人将继续发送下一个数据;如果接收方希望结束数据传输,发送人将发送不回复(ACK)信号。
      在这里插入图片描述
      在传输时,生成主机时钟。在9时,数据发送器将放弃对自失能装置的控制,数据接收端将控制自失能装置。如果自失能装置高,则表示无响应信号(NACK),而低水平则表示响应信号(ACK)。

      2、 软硬件I2C

      硬件 I2C 响应芯片用适当的 I2C 驱动电路外部化,使用的 I2C 管脚也是专用的; 软件 I2C 通常以 GPIO 管脚为基础, 并使用软件控制管脚状态, 以模仿 I2C 电信波形状。 Hardware I2C 比软件 I2C 效率高得多, 但软件 I2C 的多功能性更大, 因为它不受脚控制限制 。
      ①硬件I2C

      ②软件I2C

      ③两者的差别

      硬件 I2C 直接利用外部设置来控制基点,从而最大限度地减少CPU负担。 然而,硬件 I2C 有义务使用特定的固定拖曳作为SCLs和SDAs, 而软件则使用任意的GPIO来复制I2C, 后者比较灵活。 硬件 I2C 的使用更为复杂,软件 I2C 的过程更清楚。

      二. 温度采集 AHT20

      1、代码准备工作

      1.1下载示例代码

      https://github.com/Sunlight-Dazzling/stm32-AHT20/tree/master

      1.2 理解代码

      AHT20芯片的使用:

      AHT20芯片中的数据:

      1.3代码编译

      在这里插入图片描述

      2、硬件连接

      2.1连接方式

      USB 将 TTL 模块转换成 STM32F103 核心面板 :

      AHT20芯片与STM32F103核心板块的连接:

      2.2烧录

      在这里插入图片描述

      3、结果显示

      考虑到GIF动态地图的不透明性,这些照片实时显示温度的变化。
      在这里插入图片描述
      在这里插入图片描述

      三、OLED屏显

      1、SPI协议简介

      一个 SPI( 物理层) 连接

      在这里插入图片描述
      SS( 奴隶选择 ) : 选择设备的信号线, 也称为片段线 。
      SCK( 序列时钟) : 用于同步通信数据的时钟信号线 。
      MOSI(主输出,奴隶投入):初级设备产出/来自初级设备投入的指导。
      MISO(主输入,奴隶输出):设备输出的主要设备输入/制导。

      1.2 SPI 通信议定书(协议层)

      SPI 通信的时间序列 :
      在这里插入图片描述
      主机生成NSS、SCK和MOSI信号,而主机读取来自MISO信号的数据的机器生成MISO信号。 MOSI和ISO信号只有在NSS处于低水平并在SCK每个时钟周期发送一个数据时才有效。
      通讯信号开始和结束
      第1点,NSS信号线是SPI对话的起始信号。NSS是每架飞机独有的信号线,当它从自己的NSS线探测到起始信号时,显然它已被主机选中,并准备与主机通信。At点6,NSS信号是SPI通信的停止信号,表示通信已经结束,机器的选定状态被取消。
      数据有效性
      SPI通过MOSI和MISO信号线发送数据,并利用SCK信号线进行数据同步。MOSI和MISO数据线在SCK每时钟循环传输一个数据,同时完成数据输入输出。在数据传输时不需要MSB第一线或LSB第一线,然而,上述图中MSB第一线模式通常用来保证两个SPI通信装置使用相同的协议。
      观测图中的 MSI 和 MISO 数据在 SCK 上升期间改变输出,并在 SCK 下降时进行抽样。 也就是说, MOSI 和 MISO 的数据在 SCK 下降时有效, 也就是说, SCK 下降时是指电解周期高度的“ 1 ”, 电解周期下端的“ 0 ” 。 在其他时间, 数据无效, MOSI 和 MISO 准备下一次的数据表达 。
      每个数据传输可长达8或16位元,对可同时发送的单位数量不加限制。
      CPOL/CPHA以及通信模式
      上图所示的时间序列仅仅是斯皮尔斯公司四种通信方式之一,主要差异是CSK的时钟状态(公共汽车是免费的)和数据抽样的时间。
      CSCOL是SCK信号线(即NSS线高时SCK状态和SPI通信装置自由)在SPI通信开始之前的平方信号。 CPOL = 0, SCK 自由时是低方信号线, CPOL = 1, 反向信号线是低方信号线。
      当时钟阶段 CPHA = 0时,MOSI 或 MISO 数据线上的信号会按照SCK 时钟的“奇缘”取样。当CPHA = 1时,数据线会按照SCK 时钟的“偶边缘”取样。
      CPH=0的时间序列:
      在这里插入图片描述
      当 CPHA=1 1 时,数据信号会按照SCK的平面进行取样,而不管其为CPOL,如下图所示。
      在这里插入图片描述
      CPOL和CPHA的各州将SPI分为四种模式,其中主机和机器必须以同样的模式运作,以便正确沟通,而模型0和3的情况更经常出现这种情况。
      在这里插入图片描述

      2、OLED原理

      OLED(有机激光激光光学二极管),又称有机电激光显示,有机光半导体(有机电光显示,OLED)。 OLED是一个电子类型的有机发光器,通过电流的注入和复合而发光,电流的强度与注入的电流成正比。 OLED作为电场,将电极产生的洞穴和阴极产生的电子分别移动到空气传输层和电子传输层,并迁移到光层。 当两个电流在光层相遇时,它们产生一种能量动力,触发光分子最终产生可见光。

      3. 汉点编码概念和显示

      3.1汉字点阵编码

      3.22 OLED点

      4. 显示学校的身份证和姓名。

      4.1代码准备工作

      下载示例代码
      http://www.lcdwiki.com/zh/0.96inch_SPI_OLED_Module

      字库取模
      由于 OLED 显示器使用中文字符, 我们必须模拟中文, 以获得中文本的点数阵列代码, 并将其放入 oledfont.h 文件, 方便应用程序被调用并在 OLED 上显示。 我们正在使用 PCtoLCD2002 程序模拟中文字符 。
      选项设置:
      在这里插入图片描述
      在此输入您的姓名, 然后单击以生成字体 :
      在这里插入图片描述
      存储的字体由笔记本打开并复制到代码中。
      在这里插入图片描述
      修改示例代码:

      对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起。

      换个考试,考生的名字在C
      在这里插入图片描述

      4.2硬件连线

      在这里插入图片描述

      4.3结果显示

      烧录
      在这里插入图片描述
      结果显示
      在这里插入图片描述

      5. 温度和湿度水平表明AHT20。

      main.c

      温度大多由串口收集,并显示在OLED面板上。
      编译烧录
      在这里插入图片描述
      运行结果
      只有在没有温度感应器的情况下才能在这里显示屏幕,而且温度感应器可以实时连接到屏幕上。
      在这里插入图片描述

      长字符应显示在六张或六张以上的幻灯片上。

      6.1生成字模

      以前曾讨论过模拟程序,因此在此不重复。
      在这里插入图片描述
      保存后用记事本打开
      在这里插入图片描述

      6.2修改代码

      对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起,对不起。

      在这里插入图片描述
      修改test.c
      在这里插入图片描述

      6.3编译烧录

      在这里插入图片描述

      在这里插入图片描述

      6.4滚动结果显示

      在这里插入图片描述

      四、总结

      试验主要涉及掌握硬件连接和概念,在整个试验过程中,遇到了各种障碍,例如代码修改过程,在复制后,必须在16步代码前面的文本复制出来,否则将无法表明,一般来说,该实验的结果通过引用大人物的博客而更加成功,温度和湿湿度的收集表明,由于温度和湿度传感器在实验室中,因此试验结果比较成功。

      五、参考文献

      https://blog.csdn.net/shutupbb/article/details/121517934
      https://blog.csdn.net/weixin_45919652/article/details/121409895
      https://blog.csdn.net/qq_60678931/article/details/121410035
      https://blog.csdn.net/qq_43279579/article/details/111678857
      https://blog.csdn.net/qq_43279579/article/details/111597278

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

          热门文章

          文章分类