0.96寸SPI单色屏
模块来源
采购链接:
https://item.taobao.com/item.htm?id=37849023766&_u=n1q56pn343e4
资料下载链接:
https://pan.baidu.com/s/1PUAFSSejSUb9ddEPrin_UA
资料提取码:g4xn
规格参数
文件1.6.2.1 屏幕规格书
工作电压:3.3V
工作电流:15MA
模块尺寸:27.3 x 27.8 MM
像素大小:128(H) x 64(V)RGB
驱动芯片:SSD1306
通信协议:SPI
管脚数量:7 Pin(2.54mm间距排针)
原理解析
SPI与IIC类似,都分有软件SPI和硬件SPI。
ESP32-S3芯片集成了四个 SPI 控制器:
• SPI0
• SPI1
• 通用 SPI2,即 GP-SPI2
• 和通用 SPI3,即 GP-SPI3
SPI0 和 SPI1 控制器主要供内部使用以访问外部 flash 及 PSRAM。我们只能使用SPI2和SPI3。
硬件SPI支持以下特性:
移植过程
我们的目标是将例程移植至ESP32-S3开发板上。已经为大家提供了完整的驱动代码,按照以下步骤,即可完成移植。
软件SPI移植
该屏幕需要设置7个接口,具体接口说明见 表6.4.1-1 各引脚说明。
模块为SPI通信协议的从机,D0为SPI信号线(SCK),D1为SPI输出线(MOSI),CS为SPI片选线(NSS)。
这里选择的引脚见表6.4.1-2 软件SPI接线
为大家准备的【OLED】文件夹,复制到自己工程中的main文件夹中。
软件SPI驱动代码:
将OLED文件夹复制到main文件下:
打开自己的工程,将我们刚刚复制过来的文件导入.c和.h文件路径。
- 在VSCode中打开main文件夹下的CMakeLists.txt文件
- 添加这些路径
到这里软件SPI就移植完成了,请移步到 6.5 进行移植验证。
硬件SPI移植
该屏幕需要设置7个接口,具体接口说明见 表6.4.2-1 各引脚说明。
模块为SPI通信协议的从机,D0为SPI信号线(SCK),D1为SPI输出线(MOSI),CS为SPI片选线(NSS)。
这里选择的引脚见表6.4.2-2 硬件SPI接线
为大家准备的【OLED】文件夹,复制到自己工程中的main文件夹中。
硬件SPI驱动代码:
将OLED文件夹复制到main文件下:
打开自己的工程,将我们刚刚复制过来的文件导入.c和.h文件路径。
- 在VSCode中打开main文件夹下的CMakeLists.txt文件
- 添加这些路径
到这里硬件SPI就移植完成了,请移步到 6.5 进行移植验证。
移植验证
在main.c中输入代码如下
#include <stdio.h>
#include <inttypes.h>
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_chip_info.h"
#include "esp_flash.h"
#include "esp_timer.h"
#include "oled.h"
void app_main(void)
{
OLED_Init(); //初始化OLED
OLED_Clear();
while(1)
{
OLED_ShowString(0,0,(uint8_t *)"ABC",8,1);//6*8 “ABC”
OLED_ShowString(0,8,(uint8_t *)"ABC",12,1);//6*12 “ABC”
OLED_ShowString(0,20,(uint8_t *)"ABC",16,1);//8*16 “ABC”
OLED_ShowString(0,36,(uint8_t *)"ABC",24,1);//12*24 “ABC”
OLED_Refresh();
delay_ms(500);
}
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
上电效果: