ESP32 OLED使用U8g2库显示中文

发布于 2025-08-19 阅读 147 分类:技术文章

要在ESP32驱动的OLED屏幕上显示中文,有几种不同的方法。下面我将介绍最常用的几种方案。

方法1:使用U8g2库显示中文(推荐)

U8g2库对中文支持较好,以下是实现步骤:

1. 安装U8g2库

在Arduino IDE中:工具 -> 管理库 -> 搜索”U8g2″并安装

2. 示例代码

#include <U8g2lib.h>
#include <Wire.h>

// 初始化OLED(I2C接口)
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE);

// 定义中文字体(需要先安装对应字体)
#define FONT u8g2_font_wqy16_t_gb2312  // 文泉驿16点阵简体中文

void setup() {
  u8g2.begin();
  u8g2.enableUTF8Print();  // 启用UTF-8支持
}

void loop() {
  u8g2.clearBuffer();
  
  // 设置字体
  u8g2.setFont(FONT);
  
  // 显示中文
  u8g2.setCursor(0, 20);
  u8g2.print("你好,世界!");
  
  u8g2.setCursor(0, 40);
  u8g2.print("ESP32 OLED");
  
  u8g2.sendBuffer();
  delay(1000);
}

3. 安装中文字体

  1. 下载中文GB2312字体文件(如wqy16_t_gb2312.h)
  2. 放入Arduino库目录的U8g2字体文件夹中
  3. 在代码中包含该字体