极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23292|回复: 18

请教:关于OLED连续发光的问题

[复制链接]
发表于 2015-1-15 14:47:53 | 显示全部楼层 |阅读模式
各位大神:
我用的是OLED屏幕,用的(Adafruit_SSD1306.h)库驱动的,由于显示实时数剧就要不停的清屏,所以这屏幕是不断刷新闪动的,眼睛看着很不舒服,请教一下是否可以让每个像素点连续发光,或者提高刷新率,主要是不能用延时拖慢其他程序的运行
回复

使用道具 举报

发表于 2015-1-15 14:53:20 | 显示全部楼层
不是清屏刷的太慢?
我是新手。。勿喷。。。。{:soso_e117:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 15:23:24 | 显示全部楼层
我也是新手,最近做个东西,要在oled上显示电量,还有其他数据,清屏导致闪屏,不清数据就会重叠。好烦啊
回复 支持 反对

使用道具 举报

发表于 2015-1-15 15:33:59 | 显示全部楼层
计算一下只刷新要更新的部分行不行?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 16:12:31 | 显示全部楼层
zoologist 发表于 2015-1-15 15:33
计算一下只刷新要更新的部分行不行?

这个怎么搞。。。我不会呢,
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 16:14:50 | 显示全部楼层
这个是电源电量的检测,没有注释。。。。Σ( ° △ °|||)︴
  1. void Powersource(void)
  2. {
  3.   UI();
  4.   float i,n;
  5.   int v;   
  6.   v=analogRead(A1);
  7.   i=v*5.0/1023.0;  
  8.   n=v*100.0/1023.0;   
  9.   if(n>0&&n<=7)
  10.   {oled.drawBitmap(0,0,bmp9,16,15, 1);}
  11.   if(n>7&&n<=15)
  12.   {oled.drawBitmap(0,0,bmp10,16,15, 1);
  13.      oled.setTextSize(1);
  14.      oled.setTextColor(WHITE);
  15.      oled.setCursor(17,4);
  16.      oled.println("no power!");     
  17.      oled.display();   
  18.    }
  19.   if(n>15&&n<=23)
  20.   {oled.drawBitmap(0,0,bmp11,16,15, 1);}
  21.   if(n>23&&n<=30)
  22.   {oled.drawBitmap(0,0,bmp12,16,15, 1);}
  23.   if(n>30&&n<=38)
  24.   {oled.drawBitmap(0,0,bmp13,16,15, 1);}
  25.   if(n>38&&n<=46)
  26.   {oled.drawBitmap(0,0,bmp14,16,15, 1);}
  27.   if(n>46&&n<=54)
  28.   {oled.drawBitmap(0,0,bmp15,16,15, 1);}
  29.   if(n>54&&n<=62)
  30.   {oled.drawBitmap(0,0,bmp16,16,15, 1);}
  31.   if(n>62&&n<=70)
  32.   {oled.drawBitmap(0,0,bmp17,16,15, 1);}
  33.   if(n>70&&n<=78)
  34.   {oled.drawBitmap(0,0,bmp18,16,15, 1);}
  35.   if(n>78&&n<=85)
  36.   {oled.drawBitmap(0,0,bmp19,16,15, 1);}
  37.   if(n>85&&n<=93)
  38.   {oled.drawBitmap(0,0,bmp20,16,15, 1);}
  39.   if(n>93&&n<=100)
  40.   {oled.drawBitmap(0,0,bmp21,16,15, 1);}   
  41.   oled.display();
  42.   delay(50);
  43.   oled.clearDisplay();
  44.   UI();
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:49:17 | 显示全部楼层
呵呵,正好我正在调校这个库,
你的问题很简单,先把清屏的语句删掉,
然后把第14行改成下面就可以:
[pre lang="arduino" line="14"]     oled.setTextColor(WHITE,BLACK);
[/code]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 16:57:08 | 显示全部楼层
Pyrrhus 发表于 2015-1-15 16:49
呵呵,正好我正在调校这个库,
你的问题很简单,先把清屏的语句删掉,
然后把第14行改成下面就可以:

大神啊,解决问题了
回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:57:11 | 显示全部楼层
然后是把所有的画图(应该是显示汉字吧)语句改成下面的:
  1. {oled.drawBitmap(0,0,bmp21,16,15, WHITE,BLACK);}  
复制代码
回复 支持 反对

使用道具 举报

发表于 2015-1-15 16:59:21 | 显示全部楼层
我正好把这个库改掉了,可以显示汉字了,等我写帖吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 17:08:39 | 显示全部楼层
Pyrrhus 发表于 2015-1-15 16:57
然后是把所有的画图(应该是显示汉字吧)语句改成下面的:
{oled.drawBitmap(0,0,bmp21,16,15, WHITE,BLAC ...

这个是什么原理?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 17:08:57 | 显示全部楼层
Pyrrhus 发表于 2015-1-15 16:59
我正好把这个库改掉了,可以显示汉字了,等我写帖吧

坐等大神新库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 17:10:34 | 显示全部楼层
Pyrrhus 发表于 2015-1-15 16:57
然后是把所有的画图(应该是显示汉字吧)语句改成下面的:
{oled.drawBitmap(0,0,bmp21,16,15, WHITE,BLAC ...

这个是什么意思呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 17:11:00 | 显示全部楼层
Pyrrhus 发表于 2015-1-15 16:59
我正好把这个库改掉了,可以显示汉字了,等我写帖吧

坐等大神新库
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-1-15 17:13:17 | 显示全部楼层
改了编译通不过
  1. oled.drawBitmap(0,21,bmp6,16,15,WHITE,BLACK);
复制代码
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-16 04:26 , Processed in 0.039463 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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