esp8266使用u8g2库显示汉字
自己摸索驱动0.91寸LED屏幕显示汉字的程序,自己做了备注,方便日后查看,需要的可以参考下
#关于如何选择你的液晶驱动硬件定义,即下面的选项
可以参考如下链接的介绍:https://www.bilibili.com/read/cv20862714/
下面是我的源程序,。
#include <ESP8266WiFi.h>
#include <U8g2lib.h>
#define SDA 4 // SDA引脚,默认gpio4(D2)
#define SCL 5 // SCL引脚,默认gpio5(D1)
//U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /*clock=*/SCL, /*data=*/SDA, /*reset=*/U8X8_PIN_NONE); // 选择显示屏幕
U8G2_SSD1306_128X32_UNIVISION_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ 5, /* data=*/ 4, /* reset=*/ U8X8_PIN_NONE); // Adafruit Feather ESP8266/32u4 Boards + FeatherWing OLED
int x = 1, y = 1;
void setup() {
Serial.begin(115200);
u8g2.begin(); // 初始化
u8g2.enableUTF8Print(); // UTF8允许
u8g2.clearBuffer(); // 清除缓存,其实初始化里有清除,循环时一定要加上
//u8g2.setFont(u8g2_font_wqy12_t_gb2312b); // 选择中文gb2313b
//u8g2.setFont(u8g2_font_wqy13_t_gb2312b); // 选择中文gb2313b
//u8g2.setFont(u8g2_font_wqy14_t_gb2312b); // 选择中文gb2313b
//u8g2.setFont(u8g2_font_wqy15_t_gb2312b); // 选择中文gb2313b
u8g2.setFont(u8g2_font_wqy16_t_gb2312b); // 选择中文gb2313b
/* wqy12_t 到 wqy16_t ,只是数字的变化,代表了要显示的字符的高度, */
}
void loop() {
u8g2.clearBuffer(); // 清除缓存,其实初始化里有清除,循环时一定要加上
u8g2.setCursor(x, 15); //
/*该定位,和电脑屏幕的坐标相同,比如需要在第10行的第5列显示一个字符,坐标就该为x:10,y:5
注意点是,显示时,是从该位置往上显示,比如需要显示一个字高为15的汉字,假如x:10,y:5 ,实际
显示是从x-15行开始显示的,即x=10时,要显示高度为15的字时,就会导致字最上面的5行点阵显示不出来,要显示全
X的值,必须大于或者等于要显示的字的高度。
*/
Serial.print("显示中文位置为x:"); Serial.print(x); Serial.print(",y:"); Serial.println(y);
u8g2.print("你好U8g2-20"); // 指定缓存区需要打印的字符串
u8g2.sendBuffer(); // 将定位信息发送到缓冲区
x++;
//y++;
delay(2000);
}```