esp8266驱动1.44tft屏幕显示汉字问题求助-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1180|回复: 3

esp8266驱动1.44tft屏幕显示汉字问题求助

[复制链接]
发表于 2022-1-26 20:23 | 显示全部楼层 |阅读模式
字库也配置了,用了一个最简单的显示文字,不知道为啥屏幕会出现方块而不是汉字,大神给指教下吧,研究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();
}


zkyyt12.zip

986 Bytes, 下载次数: 9

发表于 2022-1-27 09:44 | 显示全部楼层
要直接显示需要GBK内码,不能直接UTF8
发表于 2022-1-27 20:30 | 显示全部楼层
如果字库没有问题
clk.drawString("周日",12,12,2); //绘制时和分
改成
clk.drawString("周日",64,14); //绘制时和分
发表于 2022-1-31 12:41 | 显示全部楼层
虽然没用过你的这个eSprinte,但是看了一下你的字库zkyyt12.h,根据你的叙述这并不是完整的字库,只有几个字,这样的话,应该不能使用汉字的编码索引字库的内容了,因为字库中的汉字顺序和排列并非按照汉字编码排列的。没用过eSprinte,因此不知道drawString()支不支持直接使用索引号,输出汉字。比如0号是“周”,1号是“日”,那么 int bstr=[0,1]; clk.drawString(bstr,12,12,2);  另外,也要保证字库中的扫描方式和eSprinte的显示方式一致。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 08:44 , Processed in 0.079002 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表