目录

一、SPI协议的介绍

1.概述

2.特点

3.通信原理

4.通讯过程

二、OLED的介绍

1.概述

2.优点及实物图

(1)功耗低

(2)响应速度快

(3)较宽的视角

(4)能实现高分辨率显示

(5)宽温度特性

(6)OLED能够实现软屏

(7)OLED成品的质量比较轻

3.电路图以及接法

 三、用OLED显示姓名学号

1.解压得到的字模点阵生成软件

2.将自己的名字生成相关点阵

(1)新建图像

 (2)在文字输入区输入名字

(3) 选择取模方式(C51)

(4)参数设置

 3.打开项目修改代码

(1)找到项目中oledfont.h

 (2)在cfont16数组中添加自己的名字

(3) 再在test.c中对函数Test_MainPage进行修改

 (4)主函数的修改

(5)编译并生成hex文件

4.烧录

5.调试运行结果

 四、用OLED显示温度湿度

1.将相关文字生成点阵

 2.进入项目修改代码

(1)找到项目中oledfont.h

 (2)在bsp_i2c.c中重新写入函数read_AHT20

(3) main.c改成如下代码

3.编译生成hex文件

4.烧录 

5.调试运行

 五、用OLED流动显示一串字符

1.将相关文字生成点阵

2. 打开项目修改代码

(1)找到项目中oledfont.h并添加相应文字

 (2) 再在test.c中对函数Test_MainPage进行修改

​编辑(3)修改主函数

(4)编译并生成hex文件

3.烧录

4.调试结果

六、心得总结

七、参考博客


一、SPI协议的介绍

1.概述

  SPI总线是一种4线总线,因其硬件功能很强,所以与SPI有关的软件就相当简单,使中央处理器(Central Processing Unit,CPU)有更多的时间处理其他事务。正是因为这种简单易用的特性,越来越多的芯片集成了这种通信协议,比如AT91RM9200。SPI是一种高速、高效率的串行接口技术。通常由一个主模块和一个或多个从模块组成,主模块选择一个从模块进行同步通信,从而完成 数据的交换。SPI是一个环形结构,通信时需要至少4根线(事实上在单向传输时3根线也可以)。

2.特点

SPI的特点包括:    

1).采用主-从模式(Master-Slave) 的控制方式                       

2).采用同步方式(Synchronous)传输数据                        

3).数据交换(Data Exchanges)                     

4).SPI只有主模式和从模式之分

3.通信原理

它以主从方式工作,这种模式通常有一个主设备和一个或多个从设备,需要至少4根线,事实上3根也可以(单向传输时)。也是所有基于SPI的设备共有的,它们是MISO(主设备数据输入)、MOSI(主设备数据输出)、SCLK(时钟)、CS(片选)。

(1)MISO– Master Input Slave Output主设备数据输入,从设备数据输出;

(2)MOSI– Master Output Slave Input,主设备数据输出,从设备数据输入;

(3)SCLK – Serial Clock,时钟信号,由主设备产生;

(4)CS – Chip Select,从设备使能信号,由主设备控制。

​ 

4.通讯过程

如果 CPOL=0,串行同步时钟的空闲状态为低电平;如果 CPOL=1,串行同步时钟的空闲状态为高电平。

 MOSI 与 MISO 的信号只在 SSEL 为低电平的时候才有效,在 SCK 的每个时钟周期 MOSI 和   MISO 传输一位数据。

二、OLED的介绍

1.概述

       OLED(Organic Light-Emitting Diode),又称为有机电激光显示、有机发光半导体(Organic Electroluminescence Display,OLED)。OLED属于一种电流型的有机发光器件,是通过载流子的注入和复合而致发光的现象,发光强度与注入的电流成正比。OLED在电场的作用下,阳极产生的空穴和阴极产生的电子就会发生移动,分别向空穴传输层和电子传输层注入,迁移到发光层。当二者在发光层相遇时,产生能量激子,从而激发发光分子最终产生可见光。

2.优点及实物图

(1)功耗低

(2)响应速度快

(3)较宽的视角

(4)能实现高分辨率显示

(5)宽温度特性

(6)OLED能够实现软屏

(7)OLED成品的质量比较轻

3.电路图以及接法

 三、用OLED显示姓名学号

1.解压得到的字模点阵生成软件

2.将自己的名字生成相关点阵

(1)新建图像

 (2)在文字输入区输入名字

(3) 选择取模方式(C51)

(4)参数设置

点击参数设置中的其它选项,选择横向取模

 3.打开项目修改代码

(1)找到项目中oledfont.h

 (2)在cfont16数组中添加自己的名字

(3) 再在test.c中对函数Test_MainPage进行修改

 (4)主函数的修改

(5)编译并生成hex文件

 

4.烧录

​ 

5.调试运行结果

 四、用OLED显示温度湿度

1.将相关文字生成点阵

与上面步骤相同

 2.进入项目修改代码

(1)找到项目中oledfont.h

增添所需文字点阵

 (2)在bsp_i2c.c中重新写入函数read_AHT20

(3) main.c改成如下代码

 

3.编译生成hex文件

4.烧录 

 

5.调试运行

 

 五、用OLED流动显示一串字符

1.将相关文字生成点阵

与上面步骤同理 

 

2. 打开项目修改代码

(1)找到项目中oledfont.h并添加相应文字

 (2) 再在test.c中对函数Test_MainPage进行修改

(3)修改主函数

   添加相应的OLED滚动代码:

 删除while内的函数Test_MainPage

(4)编译并生成hex文件

3.烧录

4.调试结果

六、心得总结

       经过此次实验,我掌握了除去hal库的其他方法实现,当然hal库也可以实现上述的各种操作,这还是需要我去学习掌握的。然后对于AHT20温湿度传感器的使用电压必须要达到5v才可以工作,当时做实验就是没有注意这点,接的是3.3v电压,导致温度湿度都是零。还有就是对于oled屏的工作原理了解得不是很清楚,只知道简单的接法,当然显示屏就是知道怎么使用就行。对于如何生成字符点阵也有了一个认识,学会了怎么让字符串滚动起来。总之,嵌入式系统的学习还是非常有趣的,也让自己的动手能力有了较大提升。

七、参考博客

基于STM32的0.96寸OLED显示屏显示数据_HarrietLH的博客-CSDN博客

【嵌入式16】STM32+OLED屏显应用实例_噗噗的罐子的博客-CSDN博客_stm32oled实现定时熄屏

基于STM32连接I2C实现温湿度(AHT20)显示_Lc-Yusheng的博客-CSDN博客

物联沃分享整理
物联沃-IOTWORD物联网 » 使用STM32实现OLED屏显

发表评论