使用STM32实现OLED屏显

目录

一、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博客

  • 12
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值