esp8266 水墨屏顯示中文之全量字庫

https://gitee.com/CHN_ZC/u8g2_wqy 項目中可以顯示的中文字體有如下,以gb2312結尾的都是能夠顯示所有漢字的。

image.png

但是這些字體的容量都比較大,可能esp8266裝不小,編譯過程會報錯:

image.png

原因是因爲使用原版漢字字庫,字庫的大小超過了板子的存儲。

如果想要顯示全部的漢字,需要處理的步驟如下:
一、導入修改的庫文件
從羣裏下載修改版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() {};

可以看到能夠展示全部漢字

image.png

到這裏基本上所有的漢字都能夠展示了,但是對於某些屏幕來說還會有一個問題,那就是字體大小。以7.5寸屏幕來說,即使是16的字體看起來也很小,如果想顯示更大的字體,還需要調整。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章