极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

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

星期天在家弄了个SSD1331彩色OLED的小程序

[复制链接]
发表于 2016-4-25 19:14:58 | 显示全部楼层
mingzhi080218 发表于 2016-4-25 15:14
实心图形我已经在用朋友说的方法做了,比如第一屏的曲线图我就是用局部刷新的,虽然效果不是太好,但总是 ...

刚才没给你解释,26C被6C显示成6CC,是因为26C是3字符长,6C是两字符长,你显示的起始位置是相同的(就是左对齐)。即,6覆盖了2,6C的C覆盖了26的6,26C的C没有被修改过,被保留下来了,就显示成了6CC。就像下面这样:
26C  (原值)
6C    (新值)
6CC  (显示出来的值)
所以,你也可以取要显示的字符串的长度,如果是2位长,就在前面加空格。这样呢C是对齐的,也就是右对齐,前面补空格。
我懒,所以就用背景色显示一遍原值,再用字体颜色显示新值。没试过那种方式效率更高,代码体积更小。你有兴趣可以试试,反正也是玩。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-25 22:35:21 | 显示全部楼层
老胖熊 发表于 2016-4-25 19:14
刚才没给你解释,26C被6C显示成6CC,是因为26C是3字符长,6C是两字符长,你显示的起始位置是相同的(就是 ...

好的,谢谢指导!我都试一下。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-4-26 08:50:07 | 显示全部楼层
老胖熊 发表于 2016-4-25 19:14
刚才没给你解释,26C被6C显示成6CC,是因为26C是3字符长,6C是两字符长,你显示的起始位置是相同的(就是 ...

昨晚测试了一下,还是用下面原来画方块的的方法来的直接,用空格补位的方法试了一下,还是有残影。
  1. display.setCursor(45,52);
  2.   display.setTextSize(0);
  3.   display.setTextColor(WHITE,BLACK);
  4.   display.print("L=");
  5.   display.print(valLight);
  6.   display.fillRect(57,52,24,7,BLACK);
  7.   display.setCursor(57,52);
  8.   display.setTextSize(0);
  9.   display.setTextColor(WHITE,BLACK);
  10.   display.print(valLight);
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 00:48 , Processed in 0.040218 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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