香主,请问如何让stm8l在Active_Halt的模式下,让RTC和LCD正常工作,LCD不需要刷屏,只要显示日期即可,我现在RTC已经可以实现在Active_Halt正常工作,但是一旦进入halt模式下,LCD就不亮了。。
我想问:1、Active_Halt模式下,是只要使能LCD,并配置好LCD,再进入Halt模式就可以使LCD正常工作了吗?
2、如果正常工作,那功耗是多少?
下面是我的程序:
void main()
{
GPIO_Init( BUTTON_GPIO_PORT, USER_GPIO_PIN, GPIO_Mode_In_FL_IT);//用户按键初始化:
EXTI->CR2 = 0x80; //使能PC1口上升沿来唤醒
enableInterrupts();
rtc_init();//使能RTC
Calendar_Init();//日期初始化
HSE_TO_LSE();//切换时钟,HSE-->LSE
u8 temp;
while (1)
{
switch (state_machine)
{
case 0://想在halt模式下显示“20140214”
LCD_GLASS_Init();
u16 table[]={'2','0','1','4','0','2','1','4'};
LCD_GLASS_DisplayStrDeci(table);
Halt_Init();//初始化HALT模式
//delay_ms(1);
//rim();//失能中断
//while((GPIOE->IDR & USER_GPIO_PIN) != 0x0);
halt();//进入HALT模式
break;
case 1://按下PE7键,进入正常状态,显示当前时间
{
u8 count=0;
LCD_GLASS_Init();
while (1)
{
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStr);
temp=RTC_TimeStr.RTC_Seconds;
while(temp==RTC_TimeStr.RTC_Seconds)//查询等待1s
{
RTC_GetTime(RTC_Format_BIN, &RTC_TimeStr);
}
Time_Show();
count++;
if(count==6)
{
state_machine=0;
break;
}
}
LCD_GLASS_Clear();
}
break;
}
}
|