基于SPI的OLED屏显和汉字点阵编码

文章目录

    • 基于SPI的OLED屏显和汉字点阵编码
      • 一、有关SPI
          • 1.简介
          • 2.SPI特点
      • 二、OLED屏显
          • 1. 显示自己的学号和姓名
          • 2.显示温度和湿度信息
          • 3. 滑动显示信息
    • 总结:

基于SPI的OLED屏显和汉字点阵编码

一、有关SPI

1.简介

SPI(Serial Peripheral Interface),即串行外围设备接口,是一种高速全双工的通信总线。本质上和UART、I2C、CAN一样,是一种通讯协议。,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。

2.SPI特点

采用主-从模式(Master-Slave) 的控制方式
SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作
采用同步方式(Synchronous)传输数据
Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的。

二、OLED屏显

前期准备:将OLED与STM32开发板连接好,这部分可以在下好的文件中工程文件的前面注释看到连线。基于SPI的OLED屏显和汉字点阵编码_第1张图片

1. 显示自己的学号和姓名
  1. 打开下好的OLED相关程序的文件
    基于SPI的OLED屏显和汉字点阵编码_第2张图片
    然后需要在对应的地方修改自己想要输出的内容,这里在输出内容之前,需要先进行生成数模。
    打开刚刚的文件
    基于SPI的OLED屏显和汉字点阵编码_第3张图片
  2. 汉字点阵编码
    点击选项,进行如图设置
    基于SPI的OLED屏显和汉字点阵编码_第4张图片
    基于SPI的OLED屏显和汉字点阵编码_第5张图片
    如图这就生成了字模,然后需要将下面的数据粘贴到要修改的地方。
    在这里插入图片描述
    如图,请根据自己需要显示的内容进行修改。
    基于SPI的OLED屏显和汉字点阵编码_第6张图片
    当然,在自己需要现实的对应函数位置修改内容
    基于SPI的OLED屏显和汉字点阵编码_第7张图片
    最后进行调试,连接好OLED和STM32开发板,观察显示效果。
    基于SPI的OLED屏显和汉字点阵编码_第8张图片
2.显示温度和湿度信息

将温湿度信息显示到OLED屏上需要有温湿度模块,而在上一个博客中我们介绍了温湿度模块的采集工作,所以我们可以沿用上一博客的代码,将采集的温湿度信息通过OLED显示出来。

  1. 将之前的AHT20温湿度采集的相关文件复制到这边。
    在这里插入图片描述
    基于SPI的OLED屏显和汉字点阵编码_第9张图片
    基于SPI的OLED屏显和汉字点阵编码_第10张图片
    同时主函数中需要进行代码的修改,添加温度显示的函数
    基于SPI的OLED屏显和汉字点阵编码_第11张图片
    其中T1和C1分别是温度与湿度。·
    显示效果
    图中的滑动效果接下来讲述。
3. 滑动显示信息

如果我们想要滑动的显示信息,其实有两种方式,一种通过改变坐标不断更新,实现信息的滑动显示,另一种是通过直接控制SSD1306的硬件来刷新效果,这种方式能让显示的效果更加的平滑,本博客只介绍一种,另一种可以参考其他博客。

  1. 显示函数的修改
    基于SPI的OLED屏显和汉字点阵编码_第12张图片
    如图通过循环的方式我们可以做到信息在OLED滑动的效果,这种方式很简单,但是滑动的效果不够平滑。
  2. 效果展示

如图利用连续的坐标变换就实现了滑动效果,但还是很僵硬,可以参考另一种方法。

总结:

这次实验探究了OLED屏的使用,同时通过SPI口来达到OLED的显示,这次试验将温度采集结果也显示了,整个过程还是比较简单的,但平滑的显示效果还是不够,还需要继续查阅一下资料。

你可能感兴趣的:(笔记,物联网,嵌入式,单片机)