• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

OLED清屏不彻底

雪狼 2021-03-29 浏览量:1621
我是在几个画面之间来回切换的,发现清屏不彻底,残留了一些乱码。
以下是清屏函数:
  1. void OLED_CLS(void)
  2. {
  3.         unsigned char yx;
  4.         for(y=0;y<8;y++)
  5.         {
  6.                 OLED_WrCmd(0xb0+y);
  7.                 OLED_WrCmd(0x01);
  8.                 OLED_WrCmd(0x10);
  9.                 for(x=0;x<X_WIDTH;x++)
  10.                 OLED_WrDat(0);
  11.         }
  12. }
m data-ke-onclick="copycode($('code_LQB'));">复制代码



0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 你有没有把所有的显示的缓存寄存器都写完成的,看一下驱动芯片的手册,是哪几个

    看一下有没有直接清屏的寄存器,可以一下清了

    看 一下通讯速度,是不是太快,超过了驱动芯片的最大频率了

    • 发布于 2021-04-02
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:4
  • 可能写入速度太快,在写数据和命令函数里面增加一些延时看看,如果时序太快也会出错
    • 发布于2021-03-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 我认为是算法的问题,没把所有的点清除上,你可以用这个算法写1, OLED_WrDat(1);哪个点空白,就说明哪个点也不会清除掉。
    • 发布于2021-03-29
    • 举报
    • 评论 0
    • 0
    • 0

  • 不知道你具体的处理,比如 OLED_WrCmd和OLED_WrDat的意义,
    怀疑需要
    OLED_WrCmd(0x01+y);
    OLED_WrCmd(0x10+y);
    • 发布于2021-03-30
    • 举报
    • 评论 0
    • 0
    • 0

  • 屏的大小是多大,缓存大小是多大,你只是一个for循环是不是不够啊,行列至少两个吧
    • 发布于2021-04-08
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

OLED清屏不彻底