目录
- 一、题目要求
- 二、SPI介绍
-
- 2.1 SPI简介
- 2.2 SPI特点
- 三、OLED介绍
-
- 3.1 OLED概述
- 3.2 OLED模块描述
- 3.2 OLED模块原理图
- 四、STM32+OLED显示个人学号姓名
-
- 4.1 文字取模方法
- 4.2 工程代码修改与编写
- 4.3 线路连接及代码烧录
- 五、实验二:STM32+OLED滑动显示长字符
-
- 5.1 代码撰写
- 5.2 效果展示图
- 六、实验三:STM32+OLED显示温湿度
-
- 6.1 代码撰写
- 6.2 效果展示
- 总结
一、题目要求
理解OLED屏显和汉字点阵编码原理,使用STM32F103的SPI或IIC接口实现以下功能:
-
显示自己的学号和姓名;
-
显示AHT20的温度和湿度;
-
上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”或者一段歌词或诗词(最好使用硬件刷屏模式)。
二、SPI介绍
2.1 SPI简介
SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作。
2.2 SPI特点
- SPI控制方式
采用主-从模式(Master-Slave) 的控制方式。
SPI 规定了两个 SPI 设备之间通信必须由主设备 (Master) 来控制次设备 (Slave). 一个 Master 设备可以通过提供 Clock 以及对 Slave 设备进行片选 (Slave Select) 来控制多个 Slave 设备, SPI 协议还规定 Slave 设备的 Clock 由 Master 设备通过 SCK 管脚提供给 Slave 设备, Slave 设备本身不能产生或控制 Clock, 没有 Clock 则 Slave 设备不能正常工作。
- SPI传输方式
采用同步方式(Synchronous)传输数据Master 设备会根据将要交换的数据来产生相应的时钟脉冲(Clock Pulse), 时钟脉冲组成了时钟信号(Clock Signal) , 时钟信号通过时钟极性 (CPOL) 和 时钟相位 (CPHA) 控制着两个 SPI 设备间何时数据交换以及何时对接收到的数据进行采样, 来保证数据在两个设备之间是同步传输的。
三、OLED介绍
3.1 OLED概述
OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(OrganicElectroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。
LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示,OLED 效果要来得好一些。以目前的技术,OLED 的尺寸还难以大型化,但是分辨率确可以做到很高。
3.2 OLED模块描述
ATK-0.96’ OLED 模块是 ALIENTEK 推出的一款高性能 OLED 显示模块,尺寸小巧(27mm26mm),结构紧凑,模块通过 1 个 28P 的 2.54mm 间距排针与外部连接,模块外观如图所示:
该模块采用 8*2 的 2.54 排针与外部连接,总共有 16 个管脚,在 16 条线中,我们只用了 15条,有一个是悬空的。15 条线中,电源和地线占了 2 条,还剩下 13 条信号线。在不同模式下,我们需要的信号线数量是不同的,在 8080 模式下,需要全部 13 条,而在 IIC 模式下,仅需要2条线就够了!这其中有一条是共同的,那就是复位线 RST(RES),RST 上的低电平,将导致 OLED 复位,在每次初始化之前,都应该复位一下 OLED 模块。
在下面实验中,将会采用七线OLED
参考厂家给出的Demo程序:0.96寸SPI_OLED模块配套资料包
- 打开取字模软件应用程序:
- 在文字输入区输入姓名,并ctrl+enter,得到显示图:
4.2 工程代码修改与编写
找到工程项目中oledfont.h文件下的cfont16数组:
在test.c文件中对函数Test_MainPage进行修改:
工程编译生成hex文件:
屏效果图展示
在test.c中对函数Test_MainPage进行修改:
oled
六、实验三:STM32+OLED显示温湿度
6.1 代码撰写
找到项目中oledfont.h,增添所需文字点阵:
线路连接规则,烧录代码
usb to ttl —> stm32f103c8t6以及stm32f103c8t6 —> OLED屏显的连线在实验一已经介绍过了,这里不再赘述
STM32F103C8T6核心开发板 —-> 温湿度采集器的连接:
3V3 —> 引脚1
GND —> 引脚3
PB6 —> SCL
PB7 —> SDA温湿度显示
总代码:链接:https://pan.baidu.com/s/1Q3kphdUQOE_PkA-3TlBKfA
提取码:1902总结
通过本次实验,加深了对OLED的知识理解,在实践上也获得了很多心得,学会了运用字模的提取以及在代码中运用,再到OLED的显示,以及温湿度采集器在OLED上的显示。这三个实验每一个都很有实践操作意义,增强了我们的动手能力,
参考链接:
https://blog.csdn.net/dengjin20104042056/article/details/108404650
https://blog.csdn.net/Firefly_cjd/article/details/51935079
https://blog.csdn.net/qq_46467126/article/details/121439142
https://blog.csdn.net/qq_53112972/article/details/127596367来源:源的涵涵葛
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!
- 在文字输入区输入姓名,并ctrl+enter,得到显示图: