OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 12964|回复: 10

求教RTC实时时钟和待机唤醒实验的小问题

[复制链接]

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-3-14
在线时间
0 小时
发表于 2012-3-14 13:58:49 | 显示全部楼层 |阅读模式

     我将RTC实时时钟和待机唤醒实验直接拼在一起,然后出现这种情况,按三秒wkup开机,能正常显示实时时钟,按三秒wkup,进入待机状态,在唤醒就白屏了,再待机 ,唤醒就正常。简单说就是待机唤醒重复操作,一次正常一次白屏,请问是为啥?

 int main(void)
{  
 u8 t=0;  
  Stm32_Clock_Init(9);//系统时钟设置
 delay_init(72);  //延时初始化
 uart_init(72,9600); //串口1初始化  
 LED_Init();
 WKUP_Init();
 LCD_Init();         
 RTC_Init(); 
 //RTC_Set(2004,12,31,23,59,55);  //设置时间   
 OINT_COLOR=RED;//设置字体为红色
 LCD_ShowString(100,50,"Mini STM32"); 
 LCD_ShowString(100,70,"RTC TEST"); 
 LCD_ShowString(100,90,"@DONGSHI624");
 LCD_ShowString(100,110,"2012/3/13"); 
 //显示时间
 OINT_COLOR=BLUE;//设置字体为蓝色
 LCD_ShowString(100,130,"    -  -  ");   
 LCD_ShowString(100,167,"  :  :  ");     
 while(1)
 {           
  if(t!=timer.sec)
  {
   t=timer.sec;
   LCD_ShowNum(100,130,timer.w_year,4,16);          
   LCD_ShowNum(140,130,timer.w_month,2,16);          
   LCD_ShowNum(164,130,timer.w_date,2,16); 
   switch(timer.week)
   {
    case 0:
     LCD_ShowString(100,148,"Sunday   ");
     break;
    case 1:
     LCD_ShowString(100,148,"Monday   ");
     break;
    case 2:
     LCD_ShowString(100,148,"Tuesday  ");
     break;
    case 3:
     LCD_ShowString(100,148,"Wednesday");
     break;
    case 4:
     LCD_ShowString(100,148,"Thursday ");
     break;
    case 5:
     LCD_ShowString(100,148,"Friday   ");
     break;
    case 6:
     LCD_ShowString(100,148,"Saturday ");
     break; 
   }
   LCD_ShowNum(100,167,timer.hour,2,16);          
   LCD_ShowNum(124,167,timer.min,2,16);          
   LCD_ShowNum(148,167,timer.sec,2,16);
   LED0=!LED0;
  } 
  delay_ms(10);         
 }; 
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-14 14:55:46 | 显示全部楼层
回复【楼主位】nnn!:
---------------------------------
因为没有复位引脚给LCD复位.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-3-14
在线时间
0 小时
 楼主| 发表于 2012-3-14 19:37:03 | 显示全部楼层
回复【2楼】正点原子:
回复【楼主位】nnn!:
---------------------------------
因为没有复位引脚给LCD复位.
---------------------------------
那为什么待机唤醒重复操作中是一次白屏一次正常交替着,同样是没有复位啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-3-14 22:25:41 | 显示全部楼层
这个我也不太清楚,这么有规律的,呵呵.应该是哪个地方让LCD复位了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-3-14
在线时间
0 小时
 楼主| 发表于 2012-3-14 22:43:39 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
嗯,谢谢原子老师指点
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2012-6-7
在线时间
0 小时
发表于 2012-6-9 10:38:42 | 显示全部楼层
若 LCD_Init() 调用偶数次则白屏,调用奇数次则可以显示,啥原因呢?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-9 13:30:05 | 显示全部楼层
不要重复调用!因为复位信号并没有多次给(复位信号和stm32的复位共用了)
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2012-6-7
在线时间
0 小时
发表于 2012-6-10 10:51:36 | 显示全部楼层
经过看手册和实验,发现在B505初始化代码的 LCD_WriteReg(0x0012,0x0000);后面加入一定的延时即可,delay_ms(50);
这句是关闭LCD电源供给的,在关闭电源供给顺序的图例Figure 68中,在写PSON=0和PON=0后,需要5 frames or more的延时,才进入POWER OFF状态,按照前边的设置,帧频率fFLM = 600kHz/(26 clocks x 1/1 x (320 + 2 + 2) (lines)  ≒ 71Hz ,既每帧需要14ms,5帧需要约70ms,在上电时,LCD是处于POWER OFF状态,而STM32被唤醒时,LCD处于POWER ON状态,进入POWER OFF需要一段延时,这时再次设置PSON=1和PON=1才会有效。由于设置PSON=0和PON=0后到再次设置PSON=1和PON=1之间本身已经有2个delay_ms(20),所以只需要再加入适当的延时就可以了,经过测试延时50ms效果可以.不知道这样理解是否正确,请赐教。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-10 13:18:16 | 显示全部楼层
能用就OK了.
不过你频繁调用LCD INIT函数有啥用呢?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
26
金钱
26
注册时间
2012-6-7
在线时间
0 小时
发表于 2012-6-10 16:16:13 | 显示全部楼层
在待机唤醒实验里,如果要用到显示屏显示内容的话,在唤醒后就会出现楼主的情况,实际上就是显示屏在POWER ON的状态下又一次被初始化了一次。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2012-6-10 19:08:19 | 显示全部楼层
那个确实有这个问题。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-26 05:02

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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