打印

关于MSP430驱动OLED的问题

[复制链接]
4229|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kolokolo|  楼主 | 2017-1-24 10:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
买了一块0.96oled屏,4线IIC驱动,屏已经点亮,但奇怪的是如果刚给430断电后,再通电屏能够正常显示,如果隔得时间长一点的话,2,30分钟后再通电,屏就没有显示了,不知道是什么原因。oled初始化之前已经加了延时。单片机是msp430f19

相关帖子

沙发
dirtwillfly| | 2017-1-24 12:27 | 只看该作者
软件或者硬件都有可能引起这个问题。建议上传电路图和代码

使用特权

评论回复
板凳
kolokolo|  楼主 | 2017-1-24 13:13 | 只看该作者
oled屏上面只有4根线连接,VCC接3.3V,GND,两个IO口连接SCL,SDA。
我把编程器的线一插到430的编程接口上,还没有下载程序,屏就会亮,正常工作。

使用特权

评论回复
地板
kolokolo|  楼主 | 2017-1-24 13:24 | 只看该作者
#include "oled.h"


void system_Init(void);
void TB_Init(void);
unsigned long  count=0;
u8 t0='0',t1='0';


void main( void )
{       
   WDTCTL = WDTPW + WDTHOLD;
   system_Init();
   
    P3SEL = 0x00;
    P3DIR |=0x0a;
   delay_ms(1000);
   
   OLED_Init();//初始化OLED  
   
   OLED_Clear();
     TB_Init();      
    _EINT();
    OLED_ShowCHinese(0,0,0);//中
    OLED_ShowCHinese(18,0,1);//景
    OLED_ShowCHinese(36,0,2);//园
    OLED_ShowCHinese(54,0,3);//电
    OLED_ShowCHinese(72,0,4);//子
    OLED_ShowCHinese(90,0,5);//科
    OLED_ShowCHinese(108,0,6);//技
     

     
        while(1)
        {               
       
        }          
       
}

void system_Init(void)
{
  unsigned int i;
  BCSCTL1 = 0x00;//寄存器内容清0
                 //XT2振荡器开启
                 //LFTX1工作在低频模式
                 //ACLK的分频因子为1
  
  do
  {
  
    IFG1 &=~OFIFG;//清除OSCFault(振荡器失效)标志
    for(i=0x20;i>0;i--);//延时,待稳定
  }
  while((IFG1 & OFIFG)==OFIFG);//如果OSCFault= 1
  BCSCTL2 = 0x00;//
  BCSCTL2 |=SELM1;//MCLK的时钟源为TX2,分频因子为1
  BCSCTL2 |=SELS;//SMCLK的时钟源为TX2,分频因子为1
  
  
}

void TB_Init(void)
{
  TBCTL = TBSSEL_1 + MC_1;//ACLK=32.768k, up mode
  TBCCTL0 = CCIE;         //CCR0 interrupt enabled
  TBCCR0 = 4096;        //32768 / 4096 / 2= 4Hz
}

#pragma vector=TIMERB0_VECTOR
__interrupt void Timer_B0 (void)
{
  
       count = count +1;
       if(count == 20)
       {
       count = 0;
       if(t0!='9')
       t0 = t0 +1;
       else
         t0='0';
       if(t1!='9')
       t1 = t1 +1;
       else
         t1='0';
      }
     
       OLED_ShowChar(64,3,t0);
      
       OLED_ShowChar(74,3,t1);
}

使用特权

评论回复
5
dirtwillfly| | 2017-1-24 13:49 | 只看该作者
kolokolo 发表于 2017-1-24 13:13
oled屏上面只有4根线连接,VCC接3.3V,GND,两个IO口连接SCL,SDA。
我把编程器的线一插到430的编程接口上 ...

复位电路哪?
看看断电30分钟后重新上电,mcu正常运行了没有?
用的io模拟iic,还是用的msp430内置模块?你提供的程序看不出来

使用特权

评论回复
6
kolokolo|  楼主 | 2017-1-24 15:39 | 只看该作者
本帖最后由 kolokolo 于 2017-1-24 15:42 编辑

找到原因了,就是复位电路的问题。复位电路就是一个10K电阻接一个100n的电容。10K电阻一端接3.3V,一端接RST。刚才量了一下,复位信号一直为低。再仔细一看,电阻的另外一端是悬空的,没有接到3.3V。这个电路板用过很多次了,一直没发现问题,这次用来调一下oled屏才发现这个问题。

使用特权

评论回复
评论
thinkabout4451 2017-1-24 17:37 回复TA
恭喜 
7
dirtwillfly| | 2017-1-24 15:57 | 只看该作者
kolokolo 发表于 2017-1-24 15:39
找到原因了,就是复位电路的问题。复位电路就是一个10K电阻接一个100n的电容。10K电阻一端接3.3V,一端接RS ...

使用特权

评论回复
8
lilinfei520| | 2017-1-25 11:04 | 只看该作者
这么低级的错误。。。

使用特权

评论回复
9
kkzz| | 2017-1-25 23:07 | 只看该作者
查看一下oled是不是电压不稳定

使用特权

评论回复
10
kkzz| | 2017-1-25 23:10 | 只看该作者
如果断电之后通电正常可能是电源电压过低。

使用特权

评论回复
11
Varus| | 2017-1-26 09:48 | 只看该作者
用的硬件iic?

使用特权

评论回复
12
uiint| | 2017-1-28 17:40 | 只看该作者
通电用的是多少电压的?

使用特权

评论回复
13
uiint| | 2017-1-28 17:41 | 只看该作者
kolokolo 发表于 2017-1-24 13:13
oled屏上面只有4根线连接,VCC接3.3V,GND,两个IO口连接SCL,SDA。
我把编程器的线一插到430的编程接口上 ...

如果直接使用VCC和GND试试。

使用特权

评论回复
14
Rangar| | 2017-1-29 20:24 | 只看该作者
可能是电源电压过低

使用特权

评论回复
15
yuhui_| | 2018-4-27 20:28 | 只看该作者
楼主,OLED的iic驱动文件可以发给我一下吗,谢谢
邮箱:673505944@qq.com

使用特权

评论回复
16
Snow7| | 2018-4-29 10:16 | 只看该作者
电阻的另外一端是悬空的,没有接到3.3V。这个电路板用过很多次了,一直没发现问题,这次用来调一下oled屏才发现这个问题。

可能是时间长了,老化了

使用特权

评论回复
17
ChriszZ| | 2019-7-17 16:50 | 只看该作者
楼主oled的驱动可以发我吗
1054936255@qq.com
谢谢了

使用特权

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

本版积分规则

27

主题

74

帖子

0

粉丝