本文使用SPI 通信的OLED屏幕,芯片使用的是STM32F103ZET6。OLED模块整体来说比较简单,就是加字模,调函数的过程。初学者可以好好看看里面包含的函数,还是很有趣的。
OLED 屏幕
OLED,即有机发光二极管。OLED由于同时具备自发光,不需要光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示技术。
LCD都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示, OLED 效果要
来得好一些。 以目前的技术, OLED 的尺寸 还难以大型化,但是分辨率确可以做 到很高。在本章中 ,我们使用的是 ALINETEK 的 OLED 显示模块;
该模块有以下特点:
- 模块有单色和双色两种可选,单色为 纯蓝色 ,而双色则为黄蓝双色。
- 尺寸小,显示尺寸为 0.96 寸,而模块的尺寸仅为 27mm*26mm 大小。
- 高分辨率,该模块的分辨率为 128*64 。
- 多种接口方式,该模块提供了总共 5 种接口包括: 6800 、 8080 两种并行接口方式、3
线或 4 线的穿行 SPI 接口方式, IIC 接口方式(只需要 2 根线就可以控制 OLED 了!)。
- 不需要高压,直接接 3.3V 就可以工作了。
- 本文使用的是7线0.96寸SPI的OLED模块。
- 芯片:STM32F103ZET6(正点原子)
引脚连接:
[tr]OLEDSTM32[/tr]
VCC | 3V3 或 5V |
D0 | PD6(SCL) |
D1 | PD7(SDA) |
RES | PD4 |
DC | PD5 |
CS | PD3 |
其中,CS 可以不用连接。
实验目标
- 显示自己的学号和姓名
- 显示AHT20的温度和湿度
- 上下或左右的滑动显示长字符,比如“Hello,欢迎来到重庆交通大学物联网205实训室!”
需要找一个OLED的例程,在例程里进行修改。(一般商家会提供例程)
学号显示可以使用显示字符串的函数,姓名则需要显示汉字的函数。
注意:显示汉字时,需要将汉字的点阵(利用软件生成点阵)放到存放点阵的文件中。
代码分析1
void OLED_ShowString(u8 x,u8 y,u8 *chr)
{
unsigned char j=0;
while (chr[j]!='