搜索
bottom↓
回复: 56

iic通ssd1306正常,但oled屏不亮。[已经解决]

[复制链接]

出0入0汤圆

发表于 2011-9-26 13:46:58 | 显示全部楼层 |阅读模式
近日淘宝买了12864oled小屏,是4线spi口的。由于自己驱动程序写得糟,只有在某些脚接触不良时偶然能够点亮。苦于无法与ssd1306通信,连其状态都无法了解,于是查资料将4线spi改为iic。经过努力,iic从ssd1306已经得到了准确的ack应答(尝试过改变地址码和“控制码”,立刻就得不到ack)。但是,找了网上若干资料仍然没有找到合适的ssd1306初始化的命令序列。

现求ssd1306初始化命令序列,做过串行对通ssd1306的各位给些指点也非常欢迎。商家似乎无力给足够技术支持了。

预先致谢!

出0入0汤圆

 楼主| 发表于 2011-9-26 16:49:50 | 显示全部楼层
因为商家给了6、7种驱动程序的打包文件,没有找对版本。最初版本碰对的时候,当时的接线还有点错误(spi模式)。于是就弄糊涂了。

现在确认了iic工作正常,再次将几种初始化序列尝试一遍,就找到了正确版本。

特将iic模式下比较笨蛋的冗长iic初始化序列部分开列如下,是硬iic的版本。spi序列相同,只要去掉那些iic的专用语句即可。

//以下初始化序列来自龙丘110918开发的51例程
//MCC18 3.39编译通过
SSP1CON2bits.SEN = 1;                        //SET SEN
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0x78;                                //ADRRESS OF the oled
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X80;                                 //控制字,c0=1,D/C=0,and six 0's
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0XAE;                                //关闭显示
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
if (SSP1CON2bits.ACKSTAT)
ackcount+=1;                                //如果oled iic不响应则+1
SSP1BUF = 0X00;                                //set low column address
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X10;                               //set high column address
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X40;                                //set start line address
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X81;                                //set contrast control register
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xdf;                                // Current Brightness
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xa1;                                //Set SEG/Column Mapping
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xc8;                                //COM/Row Scan Direction
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xa6;                                //oled 正常显示
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xa8;                                //oled 驱动路数
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X3f;                                //oled 1/64
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xd3;                                //set display offset       
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X00;                                //not offset
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xd5;                                 //set display clock divide ratio/oscillator frequency
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X80;                                //set divide ratio, Set Clock as 100 Frames/Sec
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X80;                                //set divide ratio, Set Clock as 100 Frames/Sec
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xd9;                                //oled Set Pre-charge Period
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xf1;                                //oled 15:1
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xda;                                //set com pins hardware configuration
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X12;                                //配置字
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xdb;                                //oled VCOMH Deselect
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X40;                                //VCOM Deselect Level
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X20;                                //Set Page Addressing Mode
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X02;                                //页式
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X8d;                                //set Charge Pump enable/disable
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0X14;                                //set(0x10) disable
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xa4;                                //Disable Entire Display On (0xa4/0xa5)
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0Xa6;                                //Disable Inverse Display On (0xa6/a7)
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1BUF = 0XAF;                                //显示开
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG
SSP1CON2bits.PEN = 1;                         //SET PEN
while (!PIR1bits.SSP1IF);                //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;                        //CLEAR FLAG

出0入0汤圆

发表于 2011-9-26 17:28:59 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-26 17:46:37 | 显示全部楼层
one suggestion: you can restructure the code to make it more portable and readable.

for example, using functions:

void i2c_start(void) {
SSP1CON2bits.SEN = 1;                 //SET SEN  
while (!PIR1bits.SSP1IF);         //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;         //CLEAR FLAG
}

void i2c_write(unsigned char dat) {
SSP1BUF = dat;                         //ADRRESS OF the oled  
while (!PIR1bits.SSP1IF);         //WAIT ACK FROM SLAVE
PIR1bits.SSP1IF =0;         //CLEAR FLAG
}

and your code becomes
i2c_start();  //send the start condition
i2c_write(0x78);
...
i2c_stop();  //send the stop condition

far more readable than your existing code.

also, if you were to change to software i2c, you just need to change the i2c routines and the above code stays the same.

出0入0汤圆

 楼主| 发表于 2011-9-26 18:06:52 | 显示全部楼层
回复【3楼】millwood0  
one suggestion: you can restructure the code to make it more portable and readable.
for example, using functions:
void i2c_start(void) {
ssp1con2bits.sen = 1;                 //set sen  
while (!pir1bits.ssp1if);         //wait ack from slave
pir1bits.ssp1if =0;         //clear flag
}

far more readable than your existing code.

also, if you were to change to software i2c, you just need to change the i2c routines and the above code stays the same.

-----------------------------------------------------------------------
谢谢指正!
我主要是担心函数调用引进时延会带来误码,所以就用执行时间最确定的方式累赘地写代码了。
我写的笨方式的代码在100k没有问题,当时钟到1M也跑得正常,之后放到400k就比较稳妥了。
我确实不知道起始条件和结束条件与通信过程之间的时间间隔允许多大。不过有了1M调通的底,按你说的模式改得好看一点肯定行得通。
再次感谢!

出0入0汤圆

发表于 2011-10-31 14:18:40 | 显示全部楼层
楼主,把你的列子给我们共享一下好吗?

出0入0汤圆

发表于 2011-10-31 21:31:13 | 显示全部楼层
LZ很牛x啊,好东西真多

出0入0汤圆

发表于 2011-10-31 23:09:03 | 显示全部楼层
已经点亮了?俺的256*64还没时间折腾,标记学习一下

出0入0汤圆

发表于 2011-12-1 11:23:27 | 显示全部楼层
我倒 龙丘。。。。

刚刚在 淘宝上想买他们 OLED 的模块 评估板,结果 商家 叼的要死。。。

6日期:2011-12-01
betwins_zhao:(10:12:32): 你好
chiusir:(10:12:45): 你好
betwins_zhao:(10:12:57): 想了解下 您这个 是什么主控的?
chiusir:(10:13:32): SSD1306
betwins_zhao:(10:14:18): 是悠景点屏吗?
betwins_zhao:(10:17:34): 旺旺 传不了
用 QQ
我要买个 模块 再加 几个屏 先试试效果
betwins_zhao:(10:18:36): 是 台湾哪家的屏呢?
chiusir:(10:21:43): 具体不知道哪家
betwins_zhao:(10:22:13): 反正 只要是 SSD1306 应该都一样吧
chiusir:(10:22:25): 是吧
betwins_zhao:(10:22:36): 有代码?
模块的原理图吗?
chiusir:(10:22:52): 不提供
betwins_zhao:(10:23:22): 购买本模块提供驱4线SPI的89C52驱动程序、9S12XS128程序,控制器资料和接口电路方便用户开发。用户只需要4个IO口就控制液晶了
你不是写的要提供吗?
chiusir:(10:24:02): 写的就提供
不写的就不提供
betwins_zhao:(10:25:55): 你 模块写的是要提供
betwins_zhao:(10:26:13): 裸屏 没写
但是模块上的屏应该是一样的
我买个 模块 + 2个裸屏 有模块的代码和原理图吗?
chiusir:(10:27:39): 没有原理图
betwins_zhao:(10:28:27): 没有原理图 我自己做板子怎么办?
我不可能一直都用你模块啊
chiusir:(10:28:54): 我们不管这个
betwins_zhao:(10:29:04): 我要做在自己 板子上啊
betwins_zhao:(10:36:00): 那你总共 提供哪些资料呢?
/× 他就不甩我了。。。×/
betwins_zhao:(11:07:43): 真叼。。。

出0入0汤圆

发表于 2012-1-7 09:45:30 | 显示全部楼层
在搞SPI的不知道楼主能否发下SPi的程序

出0入0汤圆

 楼主| 发表于 2012-1-9 10:15:43 | 显示全部楼层
回复【10楼】tiedanbb
-----------------------------------------------------------------------

没有用spi驱动。原来OLED是SPI接口,给改成IIC了。主要因为SPI没有往来响应的信号,而IIC有从机响应信号,便于调试。

出0入0汤圆

发表于 2012-1-10 14:40:16 | 显示全部楼层
回复【11楼】surf_131
-----------------------------------------------------------------------

surf_131 你好,可以给看看你的IIC接口oled与单片机接线图吗?我也是刚买了这个屏,没给IIC接口电路……

出0入0汤圆

 楼主| 发表于 2012-1-11 23:26:36 | 显示全部楼层
回复【12楼】syl03130615
回复【11楼】surf_131  
-----------------------------------------------------------------------
surf_131 你好,可以给看看你的iic接口oled与单片机接线图吗?我也是刚买了这个屏,没给iic接口电路……
-----------------------------------------------------------------------

那个销售的手册里面给出了接线图。与三线SPI接法相同。主要需要做的,是根据OLED驱动模块的手册,将模块上的跳线位置改动,另外将SPI的“出”和“入”连到一起。
具体请找卖东西的问吧,我做好之后把信息发给卖家了。如果卖家说支持IIC模式,就该给出具体的跳线方法。

出0入0汤圆

发表于 2012-1-11 23:59:51 | 显示全部楼层
个人觉得SPI的方便。拿到程序包,改一下IO就可用了。命令都没怎么看,哈哈

出0入0汤圆

发表于 2012-3-26 18:21:16 | 显示全部楼层
屏点不亮啊,VCOMH和IREF电压都为零,正常吗

出0入0汤圆

发表于 2012-3-26 23:31:12 | 显示全部楼层
longriver05 发表于 2012-3-26 18:21
屏点不亮啊,VCOMH和IREF电压都为零,正常吗

不知道你买的是 龙 qiu的吗  我也刚买了裸屏 没有电路图 SPI还没点亮 ~~~~   交流下啊  

出0入0汤圆

发表于 2012-3-27 07:19:46 | 显示全部楼层
Name_006 发表于 2012-3-26 23:31
不知道你买的是 龙 qiu的吗  我也刚买了裸屏 没有电路图 SPI还没点亮 ~~~~   交流下啊   ...

不是,买的是深圳一家的,也是裸屏,用的是模拟的3线spi驱动,但是一直点不亮,不知道是硬件问题还是软件问题。你的屏上电就会亮吗?还是要初始化成功才能点亮

出0入0汤圆

发表于 2012-3-27 08:14:58 | 显示全部楼层
改一下IO就可用了。


the same can be said about i2c as well: you can use software i2c or to use hardware i2c with assignable pins.

you can actually configure your driver so that it can be either i2c or spi, totally transparent to the user.

出0入0汤圆

发表于 2012-3-27 08:27:46 | 显示全部楼层
longriver05 发表于 2012-3-27 07:19
不是,买的是深圳一家的,也是裸屏,用的是模拟的3线spi驱动,但是一直点不亮,不知道是硬件问题还是软件 ...

应该是只有初始化后才能点亮 今天在看看

出0入0汤圆

发表于 2012-3-29 16:08:11 | 显示全部楼层
longriver05 发表于 2012-3-27 07:19
不是,买的是深圳一家的,也是裸屏,用的是模拟的3线spi驱动,但是一直点不亮,不知道是硬件问题还是软件 ...

OK 啦 解决问题  再次感谢网友 lisn3188  的帮助
http://www.ourdev.cn/forum.php?m ... p;page=1#pid5694670

有几个问题 说下
在初始化成功以后 28角VCC 大概有 6 - 7V的电压
其他的就是我的问题了  
拆过两次  软线断掉了 需要焊到根部才能连上
上传下我的原理图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2012-3-29 17:27:19 | 显示全部楼层
Name_006 发表于 2012-3-29 16:08
OK 啦 解决问题  再次感谢网友 lisn3188  的帮助
http://www.ourdev.cn/forum.php?mod=viewthread&tid=5 ...

电路和我的差不多,我也改为4线的spi了,但一直没初始化成功,VCC输出电压一直为2.85V左右,最开始手册没看清楚,把28脚的电压输出和电压输入接在了一起,不知道有没有弄坏了

我的初始化代码:

OLED_RES0;
        Delay(80);
        OLED_RES1;
       Delay(40);
            WriteCommand(0xAE); //关闭显示
        WriteCommand(0xD5); //设置时钟分频因子,震荡频率
        WriteCommand(0x80);   //[3:0],分频因子;[7:4],震荡频率
        WriteCommand(0xA8); //设置驱动路数
        WriteCommand(0X3F); //默认0X3F(1/64)
        WriteCommand(0xD3); //设置显示偏移
        WriteCommand(0X00); //默认为0

        WriteCommand(0x40); //设置显示开始行 [5:0],行数.
                                                                                                            
        WriteCommand(0x8D); //电荷泵设置
        WriteCommand(0x14); //bit2,开启/关闭
        WriteCommand(0xd8); //设置内存地址模式
        WriteCommand(0x05); //[1:0],00,列地址模式;01,行地址模式;10,页地址模式;默认10;
        WriteCommand(0xA1); //段重定义设置,bit0:0,0->0;1,0->127;
        WriteCommand(0xC8); //设置COM扫描方向;bit3:0,普通模式;1,重定义模式 COM[N-1]->COM0;N:驱动路数
        WriteCommand(0xDA); //设置COM硬件引脚配置
        WriteCommand(0x12); //[5:4]配置
                 
        WriteCommand(0x81); //对比度设置
        WriteCommand(0xCF); //1~255;默认0X7F (亮度设置,越大越亮)
        WriteCommand(0xD9); //设置预充电周期
        WriteCommand(0xf1); //[3:0],PHASE 1;[7:4],PHASE 2;
        WriteCommand(0xDB); //设置VCOMH 电压倍率
        WriteCommand(0x40); //[6:4] 000,0.65*vcc;001,0.77*vcc;011,0.83*vcc;

        WriteCommand(0xA4); //全局显示开启;bit0:1,开启;0,关闭;(白屏/黑屏)
        WriteCommand(0xA6); //设置显示方式;bit0:1,反相显示;0,正常显示       
        FillArea(0,63,0,127,0x00);
        
        WriteCommand(0xAF); //开启显示       

出0入0汤圆

发表于 2012-3-29 19:38:29 | 显示全部楼层
longriver05 发表于 2012-3-29 17:27
电路和我的差不多,我也改为4线的spi了,但一直没初始化成功,VCC输出电压一直为2.85V左右,最开始手册没 ...

不会坏的 我的也接在一块了后来发现把他切掉了 没事

出0入0汤圆

发表于 2012-5-4 10:28:26 | 显示全部楼层
大家都有没有调试成功,一个东西日期短我都不敢用

出0入0汤圆

发表于 2012-6-10 18:17:01 | 显示全部楼层
同志们 ! 4线SPI的有没有点亮的啊???我的一直没亮   而且初始化后  屏幕会有些热!

出0入0汤圆

发表于 2012-6-21 10:32:38 | 显示全部楼层
有用SPI方式点亮的吗,我也在调这个东西,一直点不亮!

出0入0汤圆

发表于 2012-8-28 21:47:52 | 显示全部楼层
大家好,我刚买了两个小屏,一个UG-6448HLBCG03-蓝光-0.66寸-SSD1306升压型一个-UG-9664HDDAG031-0.95寸彩色-SSD1331的。现在也找不到中文资料,请问它们是怎么控制的,怎么才能点亮屏,显示东西。一点不懂,想学下,望大家指教下。

出0入0汤圆

发表于 2012-8-28 21:48:27 | 显示全部楼层
谢谢大家了。。。。

出0入0汤圆

发表于 2012-8-28 21:50:44 | 显示全部楼层
还有控制屏所用的单片机是没有要求吧,,

出0入0汤圆

发表于 2012-8-30 16:57:47 | 显示全部楼层
硬件也比较重要,建议使用21楼电路

出0入0汤圆

发表于 2012-8-31 10:08:57 | 显示全部楼层
遇到这个问题,求您指教呀~!VCC初始化成功的话,是7V左右吗???

出0入0汤圆

发表于 2012-9-1 15:56:30 | 显示全部楼层
您是这么解决的呢???
我用的是正点原子的stm的驱动,,spi3的方式,,可是就是不亮!!!!
求教~~~!!!!!

出0入0汤圆

发表于 2012-9-1 15:56:48 | 显示全部楼层
您是这么解决的呢???
我用的是正点原子的stm的驱动,,spi3的方式,,可是就是不亮!!!!
求教~~~!!!!!

出0入0汤圆

发表于 2012-10-25 14:08:16 | 显示全部楼层
请问楼主能否上传IIC方式的OLED的驱动代码,我在调试IIC的OLED,0.96寸128*64的OLED,一直没点亮,卡在了写命令和数据的函数那里了,还有时序图看不太懂,希望大家指教下。驱动是SSD1306,英文的文档看的不明不白。。。

出0入0汤圆

发表于 2012-11-14 15:38:53 | 显示全部楼层
学习了, 我最近也要点OLED

出0入0汤圆

发表于 2012-11-20 21:13:42 | 显示全部楼层
longriver05 发表于 2012-3-29 17:27
电路和我的差不多,我也改为4线的spi了,但一直没初始化成功,VCC输出电压一直为2.85V左右,最开始手册没 ...

你好,看你的代码好像也是晚上找的一段驱动代码,用的是4线SPI。我初始化后也是VCC输出只有2.85V,后来改用正点原子的驱动,同样也是输出了2.85V,两天了还没有解决,不知楼主解决了没有,分享一下经验~谢谢。
P.S.我采用的是MSP430F5528驱动。

出0入0汤圆

发表于 2012-11-21 15:34:47 | 显示全部楼层
oled,不错!

出0入0汤圆

发表于 2012-11-29 17:24:05 | 显示全部楼层
我也是sd1306已经得到了准确的ack应答(尝试过改变地址码,立刻就得不到ack),可是到了发送“控制码”,即得不到ACK。
可是当我使用你的原理图时
却可以在“控制码”中得到ACK。但我查看,SSD1306的说明时

SSD1306                        I2C          6800            8080             4-SPI                3-SPI
PinName                          
BS0                                0                0                0                 0                1
BS1                                1                0                1                 0                0
BS2                                0                1                1                 0                0

为4线的SPI,而非I2C,同时,我也不能点亮屏幕。我现在怀疑着硬件时否能实现I2C的功能?!
能否提供你的程序与原理图呢?

出0入0汤圆

发表于 2012-11-30 06:22:36 | 显示全部楼层
应该比较简单,我用I2C和SPI方式都试过,建议如果硬件方式不同的话改用IO口模拟,这样调试比较方便,特别是对于I2C模式。

出0入79汤圆

发表于 2012-12-18 10:02:15 | 显示全部楼层
这个 屏STM32  用I/O口 模拟 3线SPI已经 好了 。但是我想用硬件 SPI ,搞了 好久 都没搞好 。。不知 那里有问题 。。硬件 SPI搞好的 高手 请指点指点 。。谢谢 。。

出0入0汤圆

发表于 2013-2-22 12:21:18 | 显示全部楼层
顶顶 神马mcu的硬件iic ?

出0入0汤圆

发表于 2013-2-23 20:40:54 | 显示全部楼层
IO口模拟I2C和PCI都可以的,只是注意硬件方面28脚不要和电源短路,正常工作的话,28脚电压为7.5V

出0入0汤圆

发表于 2013-3-23 23:12:42 | 显示全部楼层
前几天买了5片SSD1306驱动的128*32OLED,用MSP430F5529怎么都无法点亮
SPI接口屏,用内部电荷泵产生高压,但测得VCC脚的电压始终是2.8V左右,达不到7V,而且这个脚也没和3.3V电源短路
软件应该没有什么问题的,无解了……

出0入0汤圆

发表于 2013-3-27 16:34:16 | 显示全部楼层
学习学习

出0入0汤圆

发表于 2013-5-26 15:46:02 | 显示全部楼层
学习一下。。。。

出0入0汤圆

发表于 2013-7-27 15:51:59 | 显示全部楼层
我现在用的Oled也是这个SSD1306,IIC通讯方式,点是点亮了,但规格书的的Continuation bit 没看懂是什么意思?

出0入0汤圆

发表于 2013-8-19 16:42:21 | 显示全部楼层
学习一下

出0入0汤圆

发表于 2013-11-30 23:22:46 | 显示全部楼层
emsl 发表于 2013-3-23 23:12
前几天买了5片SSD1306驱动的128*32OLED,用MSP430F5529怎么都无法点亮
SPI接口屏,用内部电荷泵产生高压, ...

你好,我是用STM32单片机的,最近也在搞这个,就是点不亮,请问你点亮了没有?能否分享下代码或者方法经验什么的?非常感谢!

出0入0汤圆

发表于 2013-12-21 13:12:14 | 显示全部楼层
带字库吗???SSD1306

出0入0汤圆

发表于 2014-3-15 17:18:52 | 显示全部楼层
不带字库的,要自己编码!

出0入0汤圆

发表于 2014-5-28 14:47:41 | 显示全部楼层
Name_006 发表于 2012-3-29 16:08
OK 啦 解决问题  再次感谢网友 lisn3188  的帮助
http://www.ourdev.cn/forum.php?mod=viewthread&tid=5 ...

请问有这个屏的pcb封装吗?

出0入0汤圆

发表于 2014-9-11 14:41:02 | 显示全部楼层
我有林戈智能的4线SPI 成功点亮的程序STC的

出0入0汤圆

发表于 2014-9-15 17:58:27 | 显示全部楼层
MARK                           

出0入0汤圆

发表于 2014-11-4 23:16:22 | 显示全部楼层
viq505 发表于 2014-9-11 14:41
我有林戈智能的4线SPI 成功点亮的程序STC的

能传下你的程序和硬件电路图,大家借鉴下

出0入0汤圆

发表于 2015-5-8 13:01:10 | 显示全部楼层
买了信德的。spi亮了。树莓派。但是i2c能扫到地址。点不亮。不知道部分引脚没接对么。好像rst要接高。求解~~~

出0入8汤圆

发表于 2015-7-22 15:04:58 | 显示全部楼层
我的还没有点亮,再试试看~

出0入0汤圆

发表于 2015-9-21 17:13:45 | 显示全部楼层
模拟IIC,VCC一直2.7V,不显示,无解。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-29 05:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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