OpenEdv-开源电子网

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

TFTLCD和待机唤醒结合使用为什么唤醒后会出现问题?

[复制链接]

8

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-10-29
在线时间
6 小时
发表于 2013-10-29 20:48:50 | 显示全部楼层 |阅读模式
在MiNi板上,在TFTLCD的显示RTC时钟的基础上,移植了待机唤醒的程序后,下载程序,然后第一次唤醒后屏幕可以正常显示实时时钟,然后在待机,到第二次唤醒的时候就一直出现背景颜色就变成黑色,时间也不会更新了。我在主程序上就加了句 WKUP_Init(); 还有添加了原来的待机唤醒程序.c文件,还需要加什么或者改什么吗?
我的主函数:
#include "led.h"
#include "delay.h"
#include "sys.h"
#include "key.h"
#include "usart.h"
#include "exti.h"
#include "wdg.h"
#include "timer.h"
//#include "pwm.h"
#include "lcd.h"
#include "rtc.h"
#include "wkup.h"

//ALIENTEK Mini STM32开发板范例代码11
//RTC实时时钟 实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com  
 
const u8 *COMPILED_DATE=__DATE__;//获得编译日期
const u8 *COMPILED_TIME=__TIME__;//获得编译时间

const u8* Week[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};

 int main(void)
 {
u8 t=0;
SystemInit();
delay_init(72);     //延时初始化
NVIC_Configuration();
  uart_init(9600);
  LED_Init();
  KEY_Init();
LCD_Init();
RTC_Init();
WKUP_Init();    
// RTC_Set(2013,10,28,20,27,0); //设置更新时间
POINT_COLOR=RED;//设置字体为红色 
LCD_ShowString(60,50,"Mini STM32");
LCD_ShowString(60,70,"RTC TEST");
LCD_ShowString(60,90,"ATOM@ALIENTEK");
LCD_ShowString(60,110,"2013/10/28");
//显示时间
POINT_COLOR=BLUE;//设置字体为蓝色
LCD_ShowString(60,130,"    -  -  ");   
LCD_ShowString(60,162," : :  ");
while(1)
{    
if(t!=timer.sec)
{
t=timer.sec;
LCD_ShowNum(60,130,timer.w_year,4,16);  
LCD_ShowNum(100,130,timer.w_month,2,16);  
LCD_ShowNum(124,130,timer.w_date,2,16);  
switch(timer.week)
{
case 0:
LCD_ShowString(60,148,"Sunday   ");
break;
case 1:
LCD_ShowString(60,148,"Monday   ");
break;
case 2:
LCD_ShowString(60,148,"Tuesday  ");
break;
case 3:
LCD_ShowString(60,148,"Wednesday");
break;
case 4:
LCD_ShowString(60,148,"Thursday ");
break;
case 5:
LCD_ShowString(60,148,"Friday   ");
break;
case 6:
LCD_ShowString(60,148,"Saturday ");
break;  
}
LCD_ShowNum(60,162,timer.hour,2,16);  
LCD_ShowNum(84,162,timer.min,2,16);  
LCD_ShowNum(108,162,timer.sec,2,16);
LED0=!LED0;
}
delay_ms(10);
 
}
 }
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-30 00:23:13 | 显示全部楼层
因为唤醒后,并没有对液晶进行硬复位,所以可能存在问题.
解决的办法,就是液晶的RST接到STM32的IO,然后唤醒之后,执行一次硬复位.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-10-29
在线时间
6 小时
 楼主| 发表于 2013-10-30 19:51:24 | 显示全部楼层
那这么说的话,因为开发板上的液晶显示的RST是直接接在STM32的RST键上面,所以每次唤醒后都要按一次RESET按键吗?
回复 支持 反对

使用道具 举报

8

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-10-29
在线时间
6 小时
 楼主| 发表于 2013-10-30 19:52:41 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
那这么说的话,因为开发板上的液晶显示的RST是直接接在STM32的RST键上面,所以每次唤醒后都要按一次RESET按键吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-10-30 23:30:59 | 显示全部楼层
例程只是演示,实际你自己做工程就不能这么做了,RESET,必须放到IO控制.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

8

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
102
金钱
102
注册时间
2013-10-29
在线时间
6 小时
 楼主| 发表于 2013-10-30 23:41:47 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
嗯嗯,了解,谢谢原子哥的指点!
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-10 03:28

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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