[活动专区]

【AC7811开发板试用活动】OLED显示!

[复制链接]
11689|21
手机看帖
扫描二维码
随时随地手机跟帖
hayden0|  楼主 | 2019-10-19 17:31 | 显示全部楼层 |阅读模式
本帖最后由 hayden0 于 2019-11-7 08:45 编辑

今天测试了一下OLED的显示,发现无论是官方DEMO还是自己新建工程,都有问题。
主要是OLED显示的内容”一闪而过“,每次开机只显示一次,如果放在循环中,OLED屏幕就会一直闪烁,但正确的应该是执行一次就保持内容,直到下次内容改变!
我没找到问题的所在,不知道是不是官方库的BUG;
我在测试时,使用的都是默认配置,IIC是iic2,OLED屏幕是IIC接口,试过了三个OLED屏幕都是有问题。

源码如下;
QQ图片20191019172519.png

OLED模块
P91019-172008.jpg

故障状态
P91019-172349.gif


已解决!OLED出现一闪而过应该是和新建工程的缓存有关,我删掉工程目录下缓存文件,重新编译就好了!

使用特权

评论回复

相关帖子

hayden0|  楼主 | 2019-10-19 22:08 | 显示全部楼层
本帖最后由 hayden0 于 2019-10-21 08:19 编辑
来了方法 发表于 2019-10-19 20:24
傻屌,OLED clear就要注释掉嘛!while循环那么快有刷屏有刷字符能不闪就怪了,你又不是高速相机…… ...

不是这个原因,我用官方demo都不行!
我这是测试的时候加的清屏,如果不加,什么都不显示,明白?

使用特权

评论回复
hayden0|  楼主 | 2019-10-21 08:21 | 显示全部楼层
来了方法 发表于 2019-10-20 08:42
while里的OLED clear删掉会闪?除非写字符函数写里有类似OLED clear功能的代码!不加还什么都显示?这么 ...

while里删除清屏什么都不显示!我打错了不是什么都显示

使用特权

评论回复
JasonLee27| | 2019-10-21 09:54 | 显示全部楼层
while里面不要加OLED clear函数,你可以进去看下clear函数,函数对整个屏幕清空,IIC通信大概3K多字节,按400K速率来算全速也有60ms了,60ms人眼已经可以很明显得看出来了。

使用特权

评论回复
hayden0|  楼主 | 2019-10-21 10:47 | 显示全部楼层
JasonLee27 发表于 2019-10-21 09:54
while里面不要加OLED clear函数,你可以进去看下clear函数,函数对整个屏幕清空,IIC通信大概3K多字节,按4 ...

不加,什么都不显示,把字符显示放到while外只显示一次,一闪而过就会,然后就是黑屏

使用特权

评论回复
JasonLee27| | 2019-10-21 11:54 | 显示全部楼层
hayden0 发表于 2019-10-21 10:47
不加,什么都不显示,把字符显示放到while外只显示一次,一闪而过就会,然后就是黑屏 ...

WeChat Image_20191021115146.jpg
这是我的效果,借用的gpio的代码,我的可以正常显示,看图片和你的应该也是类似的OLED屏,同样的,在while里面增加前两行代码也会闪烁。当然要注意上拉电阻的问题,因为demo板只是引出了pin脚,但并没有上拉,所以我外部接了两个上拉电阻。不知道是不是差在这里。
int main(void)
{
    static uint8_t s_key6Up = 1;    /* key6 push/pop status   1:pop  0:push */
    static uint8_t s_key7Up = 1;    /* key7 push/pop status   1:pop  0:push */
    InitDelay();
    InitDebug();
    OLED_Init();
    OLED_Clear();
    KEY_Init();    /* init key gpio */
    LED_Init();    /* init led gpio */
    //noInitData++;
    printf("\r\nAC7811: GPIO_Demo\r\n");
    OLED_ShowString(0, 0, "GPIO Demo", 16);
    while(1)
    {
        //OLED_Clear();
        //OLED_ShowString(0, 0, "GPIO Demo", 16);
        mdelay(100);
        if (s_key6Up && KEY6 == 0)
        {
            mdelay(10);
            if (s_key6Up && KEY6 == 0)
            {
               // (*testpdata)++;

                LED2 = !LED2;    /* toggle LED2 output */
                if (s_key6Up == 1)
                {
                    s_key6Up = 0;
                    OLED_ShowString(0, 4, "    KEY6 Push!  ", 16);
                }
            }
        }
        else
        {
            if (s_key6Up == 0 && KEY6 == 1)
            {
                s_key6Up = 1;
                OLED_ShowString(0, 4, "    KEY6 Pop!   ", 16);
                //NVIC_SystemReset();
            }
        }

        if (s_key7Up && KEY7 == 0)
        {
            mdelay(10);
            if (s_key7Up && KEY7 == 0)
            {
                LED3 = !LED3;    /* toggle LED3 output */
                if (s_key7Up == 1)
                {
                    s_key7Up = 0;
                    OLED_ShowString(0, 4, "    KEY7 Push!  ", 16);
                }
            }
        }
        else
        {
            if (s_key7Up == 0 && KEY7 == 1)
            {
                s_key7Up = 1;
                OLED_ShowString(0, 4, "    KEY7 Pop!   ", 16);
            }
        }
    }
}


使用特权

评论回复
hayden0|  楼主 | 2019-10-21 12:28 | 显示全部楼层
JasonLee27 发表于 2019-10-21 11:54
这是我的效果,借用的gpio的代码,我的可以正常显示,看图片和你的应该也是类似的OLED屏,同样的,在whi ...

刚才我又试了一下居然又可以了,很奇葩!
和之前用的也是相同的代码: 9EKVR3HV[L[)6`S_D8NIQG6.png


P91021-121234.jpg P91021-122134.jpg P91021-122239.jpg

使用特权

评论回复
JasonLee27| | 2019-11-4 16:38 | 显示全部楼层

可以在https://bbs.21ic.com/icview-2866108-1-1.html这个帖子下面留言参与活动,有奖品的喔。只要在帖子下面跟帖注明就行了

使用特权

评论回复
pq113_6| | 2019-11-5 14:25 | 显示全部楼层
请问一下,使用的是硬件I2C吗?

使用特权

评论回复
hayden0|  楼主 | 2019-11-5 14:27 | 显示全部楼层
pq113_6 发表于 2019-11-5 14:25
请问一下,使用的是硬件I2C吗?

对,自带库的硬件IIC

使用特权

评论回复
TechHolder| | 2019-11-25 10:25 | 显示全部楼层
感谢澄清

使用特权

评论回复
lgw111111| | 2021-7-1 11:01 | 显示全部楼层
大神有源代码参考一下吗

使用特权

评论回复
aspoke| | 2021-8-8 21:39 | 显示全部楼层
做个spiled吧   

使用特权

评论回复
232321122| | 2021-8-8 21:39 | 显示全部楼层
什么驱动芯片呢   

使用特权

评论回复
ghuca| | 2021-8-8 21:40 | 显示全部楼层
模拟iic吗   

使用特权

评论回复
soodesyt| | 2021-8-8 21:40 | 显示全部楼层
程序没有持续运行吗  

使用特权

评论回复
mnynt121| | 2021-8-8 21:41 | 显示全部楼层
官网的demo吗   

使用特权

评论回复
plsbackup| | 2021-8-8 21:41 | 显示全部楼层
自己做个程序吧         

使用特权

评论回复
kmzuaz| | 2021-8-8 21:41 | 显示全部楼层
是不是又清屏了?   

使用特权

评论回复
qiufengsd| | 2021-8-8 21:42 | 显示全部楼层
自动刷新了吗   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

60

主题

279

帖子

2

粉丝