最近搞低功耗,开始用睡眠模式,不太好。
现在在整停机模式。
以前没搞过,所以发帖子询问一下,心里放心。
我程序里这么干的:
初始化:
Stm32_Clock_Init(2);CPU_Init(); //CPU初始化
VAR_Init(); //变量初始化
usart1_init(9600);
NVIC_Init10();
/* Enable PWR and BKP clock */
RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR | RCC_APB1Periph_BKP, ENABLE);
/* Allow access to BKP Domain */
PWR_BackupAccessCmd(ENABLE);
进入停机模式:
PWR_EnterSTOPMode(PWR_Regulator_LowPower,PWR_STOPEntry_WFI);
唤醒时,我这么干:
void EXTI3_IRQHandler(void)
{
long int i;
if(EXTI_GetITStatus(EXTI_Line3)!=RESET) //上升
{
Stm32_Clock_Init(2); //16MHz
GPIO_ResetBits(GPIOA,GPIO_Pin_12); //灯亮
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
Stm32_Clock_Init(2); 这个是重新配置时钟。
请问高手,我这么配置是正确的吧?谢谢!
1) 103深度休眠模式没有尝试过
2) 以其它单片机的开发经验来说,你这样可能只是唤醒了MCU,但没有初始化相关外设,
3) 其它MCU的做法是,在唤醒一般运行的地方是睡眠的地方,所以在休眠程序段的下面紧接着做的是唤醒后的代码,比如初始化相关IO,相关外设等
4) 只能帮你到这了,回关有空了,也仔细研究一下STM32F103
专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void
存储芯片/MCU/SRAM/PSRAM/DDR/FLASH/MRAM。web.www.sramsun.com QQ3161422826 TEL:13751192923