https://gitee.com/CHN_ZC/u8g2_wqy 項目中可以顯示的中文字體有如下,以gb2312結尾的都是能夠顯示所有漢字的。
但是這些字體的容量都比較大,可能esp8266裝不小,編譯過程會報錯:
原因是因爲使用原版漢字字庫,字庫的大小超過了板子的存儲。
如果想要顯示全部的漢字,需要處理的步驟如下:
一、導入修改的庫文件
從羣裏下載修改版U8g2_for_Adafruit_GFX-02庫 和 U8g2_wqy_Arduino-0.0.1庫,導入兩個庫,同時將原相關的庫要刪除掉。鏈接: https://pan.baidu.com/s/1fCQRGWlMpT3egIvzQ-s5OQ 提取碼: 9p45
注意導入方式,一個直接導入壓縮文件,一個需要拷貝庫文件到arduino的Library裏。
二、修改字庫,上傳文件
使用u8g2_font_wqy16_t_gb2312 這個字體最大,漢字最全的庫
#include <GxEPD2_3C.h>
#include <U8g2_for_Adafruit_GFX.h>
#include "GxEPD2_display_selection_new_style.h"
// 選擇水墨屏的驅動,根據水墨屏型號選擇
GxEPD2_3C < GxEPD2_750c_Z08, GxEPD2_750c_Z08::HEIGHT / 4 > display(GxEPD2_750c_Z08(/*CS=D8*/ SS, /*DC=D3*/ 0, /*RST=D4*/ 2, /*BUSY=D2*/ 4)); // GDEW075Z08 800x480, GD7965
U8G2_FOR_ADAFRUIT_GFX u8g2Fonts; // 導入字體
void setup()
{
display.init(115200); // 初始化屏幕
display.setRotation(3); // 設置屏幕旋轉方向,分別有0,1,2,3這四個方向
u8g2Fonts.begin(display);
display.setTextWrap(false); // 設置文本是否自動換行,false則爲不自動換行,如果文本溢出則顯示異常或者不顯示
u8g2Fonts.setFontDirection(0); // 設置文字顯示方向
u8g2Fonts.setForegroundColor(GxEPD_BLACK); // 設置前景色
u8g2Fonts.setBackgroundColor(GxEPD_WHITE); // 設置背景色
u8g2Fonts.setFont(u8g2_font_wqy16_t_gb2312); // 設置文本字體
display.setTextColor(GxEPD_BLACK); // 設置文本顏色
display.setFullWindow(); // 設置全屏刷新,與之相對的是局部刷新
display.firstPage(); // 顯示開始
// 通常來說,所有的顯示都放在do while 循環中完成。
// 主要原因是 水墨屏使用循環刷新,一次循環可能不會刷新所有顯示內容
do
{
u8g2Fonts.setCursor(10, 50); // 設置顯示座標 x=10, y=50
String content = "中文顯示測試";
u8g2Fonts.println(content); // 顯示文本
}
while (display.nextPage()); // 顯示結束
}
void loop() {};
可以看到能夠展示全部漢字
到這裏基本上所有的漢字都能夠展示了,但是對於某些屏幕來說還會有一個問題,那就是字體大小。以7.5寸屏幕來說,即使是16的字體看起來也很小,如果想顯示更大的字體,還需要調整。