在ST7789屏幕上显示时间,显示内容重叠,如何解决?-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

12
返回列表 发新帖
楼主: iggy

[已解决] 在ST7789屏幕上显示时间,显示内容重叠,如何解决?

[复制链接]
发表于 2021-1-9 19:04 | 显示全部楼层

ESP32 SPI 最高可以达到 80MHz,

要不你试试 40Mhz SPI 看看?
 楼主| 发表于 2021-1-9 19:22 | 显示全部楼层
Zoologist 发表于 2021-1-9 19:04
ESP32 SPI 最高可以达到 80MHz,

要不你试试 40Mhz SPI 看看?

之前的问题解决了,现在的问题是,使用Adafruit_GFX的字体时,屏幕上的字符会重叠,不知怎么解决,Adafruit的库以前也没用过,不知道怎么改。
 楼主| 发表于 2021-1-11 10:31 | 显示全部楼层
有人知道么?
发表于 2021-1-11 11:19 | 显示全部楼层
看了下你发的库里的例子,感觉 tft.fillScreen(ST77XX_BLACK);
应该就等价于清屏啊(把屏幕变全黑)
当然你自己定义的是不是tft我不知道。。你改成你自己的就好
发表于 2021-1-11 11:57 | 显示全部楼层
写屏幕之前,先消隐,再写新数据,消隐就是RECK.DRAW画底色框覆盖抹掉原来的显示,然后再重新显示新数据。
 楼主| 发表于 2021-1-11 12:36 | 显示全部楼层
qqkkdok 发表于 2021-1-11 11:57
写屏幕之前,先消隐,再写新数据,消隐就是RECK.DRAW画底色框覆盖抹掉原来的显示,然后再重新显示新数据。 ...

if(bTimeReceived)
{
    //NTP time has been received,ajusted and written to ESP32 RTC,so Obtain the time form the ESP32 RTC.
    struct timeval tvTimeValue;
    gettimeofday(& tvTimeValue,NULL);
    //Obtain a pointer to local time.
    struct tm * tmPointer = localtime(& tvTimeValue.tv_sec);

    tft.fillRect(0,100,240,20,ST77XX_BLACK);

    tft.setFont(&FreeSans12pt7b);
   
    strftime(chBuffer, sizeof(chBuffer), "%Y.%B.%d",  tmPointer);
    tft.setCursor(0,20);
    tft.println(chBuffer);
   
    strftime(chBuffer, sizeof(chBuffer), "%A",  tmPointer);
    tft.setCursor(0,70);
    tft.println(chBuffer);

    strftime(chBuffer, sizeof(chBuffer), "%H:%M:%S", tmPointer);
    tft.setCursor(0,120);
    tft.print(chBuffer);
}
这样写字符不重叠,但是字符会闪烁
发表于 2021-1-11 13:43 | 显示全部楼层
iggy 发表于 2021-1-11 12:36
if(bTimeReceived)
{
    //NTP time has been received,ajusted and written to ESP32 RTC,so Obtain th ...

字符闪烁是刷新的问题,可以用IF做一个条件,只有在新数据与旧数据大小有区别时,才print更新显示,这样闪烁的频率就大大减低了。
发表于 2021-12-14 14:38 | 显示全部楼层
XlinliY.Zhang 发表于 2021-1-9 17:52
画个和背景色一样的大小差不多的框框遮住显示内容,再显示新的内容

我也是这样做的,但是会闪烁,还有别的办法吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 18:57 , Processed in 0.091631 second(s), 12 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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