OLED驱动芯片:SSD1306
开发平台: vscode+platformIO
开发板:ESP32 Divkit v1
目前Arduino平台上使用最广泛的OLED库: U8G2
github地址: https://github.com/olikraus/u8g2/
设置和参考手册:https://github.com/olikraus/u8g2/wiki
U8g2:单色显示器库,版本2
U8g2是用于嵌入式设备的单色图形库。U8g2支持单色OLED和LCD,包括以下控制器:SSD1305,SSD1306,SSD1309,SSD1322,SSD1325,SSD1327,SSD1329,SSD1606,SSD1607,SH1106,SH1107,SH1108,SH1122,T6963,RA8835,LC7981,PCD8544,PCF8812,HX12 ,UC1601,UC1604,UC1608,UC1610,UC1611,UC1701,ST7565,ST7567,ST7588,ST75256,NT7534,IST3020,ST7920,LD7032,KS0108,SED1520,SBN1661,IL3820,MAX7219(完整列表请参见此处)。
为什么要运用U8g2库?
- U8g2库平台支持性好,基本上支持绝大部分Arduino开发板;
- U8g2库显示控制器支持性好,基本上市面上的OLED都完美支持;
- U8g2库 API众多,特别支持了中文,支持了不同字体,这是一个对于开发者俩说不小的福利。
支持单片机平台:
一. u8g2的安装
再platformIO.ini中配置库
lib_deps =
# Using a library name
U8g2
二. u8g2函数库
方法可以分为四大类:
- 基本函数
- 绘制相关函数
- 显示配置相关函数
- 缓存相关函数
U8g2库函数详解
三. 基本函数
⭐1. u8g2.begin() —— 构造U8G2
初始化显示器, 清屏, 唤醒屏幕
/**
* 初始化U8g2库
* @Note 关联方法 initDisplay clearDisplay setPowerSave
*/
bool U8G2::begin(void)
2. u8g2.beginSimple() —— 构造U8G2
只是初始化显示器, 并不清屏, 也不唤醒屏幕
3. u8g2.initDisplay() —— 初始化显示控制器
/**
* 初始化显示控制器
*/
void U8G2::initDisplay(void)
4. u8g2.clearDisplay() —— 清除屏幕内容
/**
* 清除屏幕
*/
void U8G2::clearDisplay(void)
⭐5. u8g2.setPowerSave() —— 是否开启省电模式
/**
* 清除显示缓冲区
* @param is_enable
* 1 表示启用显示器的省电模式,屏幕上看不到任何东西
* 0 表示禁用省电模式
*/
void U8G2::setPowerSave(uint8_t is_enable)
⭐6. u8g2.clear() —— 清除操作
/**
* 清除屏幕显示,清除缓冲区,光标回到左上角原点位置(0,0)
* @Note 关联方法 home clearDisplay clearBuffer
*/
void U8G2::clear(void)
⭐7. u8g2.clearBuffer() —— 清除缓冲区
/**
* 清除内存中数据缓冲区
*/
void U8G2::clearBuffer(void)
8. u8g2.disableUTF8Print() —— 禁用 UTF8打印
/**
* 禁用Arduino平台下支持输出UTF8字符集,默认是开启
*/
void U8G2::disableUTF8Print(void)
9. u8g2.enableUTF8Print() —— 启用 UTF8打印
/**
* 开启Arduino平台下支持输出UTF8字符集
*/
void U8G2::enableUTF8Print(void)
开启UTF-8后,我们可以使用其UTF-8字库
#include <Arduino.h>