找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4056|回复: 2
收起左侧

OLED屏点亮总结-重要补充

[复制链接]
ID:1004040 发表于 2022-2-15 23:47 | 显示全部楼层 |阅读模式
     本来这是一篇内容,但却昨天实在太晚,没有完成,这里把内容补充完整。
     OLED屏点不亮跟两个方面有关:硬件(硬件驱动)和软件(用户程序)。
     OLED屏分两种接口,SPI接口和IIC接口。
     1. 这里以SPI接口为例(网上有一家做的挺好,硬件驱动也非常工整、详细,你如果仔细学习一下,可以用他们家的函数在屏幕上做出各种参数的矢量图。但他们家也存在函数不统一的现象。后面的程序均以此家为例)还是拿STM32103C8T6来讲。这款芯片有2个硬件SPI接口,你会发现厂家的OLED屏驱动引脚落在其中一组SPI引脚上(PA5,PA7),也仅有这两个引脚可以复用SPI,其他的是普通引脚。所以说厂家的驱动程序是软件模拟SPI接口,知道了这一点,我们可以做很多事情,也可以避免很多坑。
     不要设定硬件SPI,特别是使用STM32CubeMX设定硬件环境的。如果设了,你可能会点不亮屏,还不知什么原因
    2.有人就会说,那是不是我就可以随便选择引脚了呢。请看下面这个坑。
      芯片STM32F103T8,这个芯片QFN封装,36个引脚。
      a.使用内部晶振和OLED屏。使用普通引脚无法点亮,但把引脚设在SPI这几个引脚上(引脚定义普通IO,不复用SPI硬件)却可以点亮。
      b.使用外部晶振和OLED屏普通引脚可以点亮,你可以随便选。
      为什么会这样,这要回到单片机的物理特性了--PIN脚工作频率。有人会说,我初始化时已经明确引脚频率了。可是你可能没有用示波器真实测过引脚的频率,
实际的频率远比你设定的要低。
     但有一个明确的规律,硬件SPI的频率高于普通引脚的频率使用硬件晶振的引脚频率高于使用内部晶振的引脚频率所以你就会明白,OLED为什么点不亮,频率不匹配。
    3.使用SPI引脚(PA15,PB3,PB4,PB5)时存在以下问题,当开启Serial Wire Debug模式时,如果使用这几个SPI引脚(PA15,PB3,PB4,PB5),你会点不亮OLED屏。查到的资料是说,在开启Serial Wire Debug模式下系统默认那几个引脚是调试引脚,所以当你设为OLED屏驱动引脚时,是无法点亮屏幕的。
      你可以在引脚初始化函数里加上下面这两行代码,打开这几个脚,就可以点亮了。
       GPIO_InitTypeDef  GPIO_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);//打开时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//禁用调试功能
看到这个,你会发现,禁用了调试功能。没错,结果就是,屏幕亮了,却不能Debug和烧录程序了。怎么办,长按reset键,再次烧录,程序会删除芯片中内容,并报错。不要管错误,再次识别,发现芯片可以写了。记着把刚才两句删掉。
     这几个脚不是不能用,只是调试的时候慎用。
     下面再聊一下软件。
     4.看下面代码
     int main(void)
    {
        delay_init();
        OLED_Init();
        while(1)
        {
               
            OLED_ShowString(0,48,"ASCII:",16);  
            OLED_ShowString(63,48,"CODE:",16);

        }
   }
   该有的好像都有了,驱动也是原厂的,可就是点不亮屏幕。
   这个版本的驱动程序有一条指令:OLED_Refresh(),刷新屏幕。这个版本的逻辑是,上面的指令只是把内容写进了显存。你还需要下指令让它更新屏幕
  5.对于某些实例,7脚的SPI接口只定义4个引脚接口。新手会越看越糊涂。
    其实很好理解,7脚的SPI接口OLED屏最后一个引脚CS是片选引脚,也就是控制OLED屏是否可以使用。低电平有效,如果你对屏幕没有特殊需求,可以把该脚直接接地。可以节省一个IO口。


    写到这里,也就到结尾了。使用中总会碰到一些特殊的情况,特别记录下来,供大家参考。如有不同意见,欢迎提出,共同学习。

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:116773 发表于 2022-2-16 09:54 | 显示全部楼层
问题1很可能是SPI的模式没有选择正确造成的;
问题2是SPI的速率没有选择正确造成的。
回复

使用道具 举报

ID:458889 发表于 2022-2-16 13:50 | 显示全部楼层
hujj 发表于 2022-2-16 09:54
问题1很可能是SPI的模式没有选择正确造成的;
问题2是SPI的速率没有选择正确造成的。

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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