OLED点不亮怎么办
很多朋友拿到OLED的显示模组,用单片机驱动时会遇到各种问题,小编总结了一下,与各位分享:
首先要搞清楚一点:OLED和液晶是完全不同的显示产品,如128*64点阵OLED可以理解为有128*64个OLED灯发光,但是不是说你给OLED通上电这些灯就都发光,那不是成了OLED灯了吗。所以与液晶模块不同,只给OLED模块通电它是不亮的。OLED必须先给它初始化,也就是通过SPI或者并口等其他接口先发初始化的指令,然后在主函数中发具体的显示指令,就是点亮具体像素的OLED灯。如果你的接线方式和驱动程序以及外部设置的电压是正确的,那么恭喜你OLED应该点亮了。那么如果不亮应该怎么办?请按照以下步骤检测:1.首先第一点,我们的OLED模块出厂前都有老化过,可以保证是没有问题的,请先解决
以下问题。
2.检查电源。我们的模块有5v和
3.3v之分别,请提供对应的电压,你提供的电流同样重
要,尽管OLED电流不大,但是我们曾经遇过有客户通过单片机的烧录调试器为OLED 模块提供电源,结果不亮,换成一般的5v1A开关电源就亮了。用3.3v供电的朋友注意了:如果你用的是AMS1117-3.3V
来给模块供电,发现电源纹波很大,建议你换个别的牌子1117,AMS1117的基本都是假货!慎用!
3.电源正常以后,你可以测试OLED模块背面的几个测试点电压,一般VCCIN就是你输入
的5v或者3.3v电压,而有个VOLED电压要注意是否正常,正常电压如下:
水漫帝都尺寸VOLED电压尺寸VOLED电压
1.5寸1
2.5V
3.1寸12V
2.4寸13V 4.7寸12V
打印机无法打印2.7寸15V 5.5寸15V
模块接口里有一个EN脚,默认是不接的,EN是VOLED的使能信号,我们模块内部是上拉的。如果EN脚你接了单片机的IO脚,请将它拉高。当然了,为了省电,你也可以在OLED模块不用时,将它拉低,这时VOLED电压会降低,OLED不亮了。
4.IO脚:我们OLED模块分5v供电5v IO电平和3.3v供电、3.3v IO电平2种;对于5v IO
的定义为高电平大于4v,低电平低于1v;3.3v IO的定义为高电平大于2.64v,低电平低于0.66v。IO电平不匹配的后果是黑屏或者烧坏OLED玻璃接口电路。另外你的IO脚一定要配置正确,点不亮时用示波器测试一下IO口的波形,看看有没有数据进入OLED 模块。
5.接线:除了电源和地之外,EN可不接,其他线RES、CS、DC、SDIN、SCLK要接到单片
好段大全机的IO上
●RES要通过单片机软件复位
RES=0;
for(i=0;i<200;i++)
{
uDelay(200);//注意这个时间延时不够的话会不亮故宫门票预约
}
梦到丢鞋RES=1;
●CS是低有效,当然你可以直接接地,我们DEMO程序中都是接在IO脚上,程序里
要拉高拉低来控制。
●DC是命令数据控制位,在程序里控制
●SDIN是OLED模块SPI接口的数据输入位,模块没有SPI输出管脚
●SCLK是SPI时钟
接线还有个问题,就是你单片机对应的IO口初始化一定要对,特别是STM32,有主
频是36Mhz和72Mhz之分,不同主频初始化后IO是不同的。如果这一组IO点不
亮,你也可以换一组IO试试。
6.时钟:我们DEMO程序里有写单片机的外部晶振是多少,51是12Mhz,STM32是8Mhz,
也就是说程序里的延时函数你要看清楚,晶体频率不对延时也是不同,延时在OLED初始化还有模拟SPI底层通讯函数里甚至硬件SPI接口函数里都有可能用到。
7.编译:修改好的程序请改成你单片机的型号再编译,别忘了去头文件*.H里去扫一眼,
看看接口不是都改过来了,请将编译器设置为下载成功后自动运行,不然你代码是对的,下进去没执行屏幕也是黑的,不放心的话,重启一下单片机看看。
8.以上都查过以后,如果还不亮,你可以考虑换个OLED模块看看。
以上主要是在51和stm32单片机点亮时遇到的问题,其他类型单片机点亮的DEMO程序不断完善中,也欢迎客户遇到或者解决过什么问题发送邮件到**************,我们的进步来自于客户的不断要求,谢谢!
查档案
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论