关于MSP430驱动OLED的问题

[复制链接]
4186|17
手机看帖
扫描二维码
随时随地手机跟帖
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);
}

使用特权

评论回复
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内置模块?你提供的程序看不出来

使用特权

评论回复
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
恭喜 
dirtwillfly| | 2017-1-24 15:57 | 显示全部楼层
kolokolo 发表于 2017-1-24 15:39
找到原因了,就是复位电路的问题。复位电路就是一个10K电阻接一个100n的电容。10K电阻一端接3.3V,一端接RS ...

使用特权

评论回复
lilinfei520| | 2017-1-25 11:04 | 显示全部楼层
这么低级的错误。。。

使用特权

评论回复
kkzz| | 2017-1-25 23:07 | 显示全部楼层
查看一下oled是不是电压不稳定

使用特权

评论回复
kkzz| | 2017-1-25 23:10 | 显示全部楼层
如果断电之后通电正常可能是电源电压过低。

使用特权

评论回复
Varus| | 2017-1-26 09:48 | 显示全部楼层
用的硬件iic?

使用特权

评论回复
uiint| | 2017-1-28 17:40 | 显示全部楼层
通电用的是多少电压的?

使用特权

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

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

使用特权

评论回复
Rangar| | 2017-1-29 20:24 | 显示全部楼层
可能是电源电压过低

使用特权

评论回复
yuhui_| | 2018-4-27 20:28 | 显示全部楼层
楼主,OLED的iic驱动文件可以发给我一下吗,谢谢
邮箱:673505944@qq.com

使用特权

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

可能是时间长了,老化了

使用特权

评论回复
ChriszZ| | 2019-7-17 16:50 | 显示全部楼层
楼主oled的驱动可以发我吗
1054936255@qq.com
谢谢了

使用特权

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

本版积分规则

27

主题

74

帖子

0

粉丝