esp8266驱动1.44tft屏幕显示汉字问题求助
字库也配置了,用了一个最简单的显示文字,不知道为啥屏幕会出现方块而不是汉字,大神给指教下吧,研究2天了,字库里边只有,周月日一二三四五六,这几个。#include <SPI.h> //导入库
#include <TFT_eSPI.h>
#include "zkyyt12.h" //导入字库
TFT_eSPI tft = TFT_eSPI();
TFT_eSprite clk = TFT_eSprite(&tft);//声明一个eSprinte对象。并将这个sprite对象和tft屏幕关联。
void setup()
{
tft.init(); //初始化
tft.fillScreen(TFT_BLACK);//屏幕颜色
tft.setRotation(0);
}
void loop()
{
clk.createSprite(128,28);
clk.fillSprite(TFT_WHITE);
clk.loadFont(zkyyt12);
clk.setTextDatum(CC_DATUM);
clk.drawString("周日",12,12,2); //绘制时和分
//clk.setCursor(0, 0, 1);
clk.pushSprite(0,12);
clk.deleteSprite();
clk.unloadFont();
}
要直接显示需要GBK内码,不能直接UTF8 如果字库没有问题
clk.drawString("周日",12,12,2); //绘制时和分
改成
clk.drawString("周日",64,14); //绘制时和分 虽然没用过你的这个eSprinte,但是看了一下你的字库zkyyt12.h,根据你的叙述这并不是完整的字库,只有几个字,这样的话,应该不能使用汉字的编码索引字库的内容了,因为字库中的汉字顺序和排列并非按照汉字编码排列的。没用过eSprinte,因此不知道drawString()支不支持直接使用索引号,输出汉字。比如0号是“周”,1号是“日”,那么 int bstr=; clk.drawString(bstr,12,12,2);另外,也要保证字库中的扫描方式和eSprinte的显示方式一致。
页:
[1]