打印
[STM32]

STM32F030 standby无法进入

[复制链接]
2659|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hehui000|  楼主 | 2014-3-28 10:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void fn_standbyTest(void)
{
      RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE);
      //RCC_APB2PeriphResetCmd(RCC_APB2Periph_SYSCFG, ENABLE);
      //RCC_ClockSecuritySystemCmd(ENABLE);
      //PWR_BackupAccessCmd(ENABLE);

      defBz_On;fn_SoftDelay_1ms(40);defBz_Off;fn_SoftDelay_1ms(100);
      defBz_On;fn_SoftDelay_1ms(40);defBz_Off;//be..be

      /*
      EXTI_InitTypeDef EXTI_InitStructure;
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
        EXTI_ClearITPendingBit(EXTI_Line0);
        SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource0);
        EXTI_InitStructure.EXTI_Line = EXTI_Line0;
        EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt; //设置为中断请求,非事件请求   
        EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;//EXTI_Trigger_Rising; //设置中断触发方式为下 降沿触发   
        EXTI_InitStructure.EXTI_LineCmd = ENABLE;            //外部中断使能   
        EXTI_Init(&EXTI_InitStructure);  
        EXTI_ClearITPendingBit(EXTI_Line0);  
        EXTI_ClearFlag(EXTI_Line0);         
      */
                        PWR_WakeUpPinCmd(PWR_WakeUpPin_1,ENABLE);//PA0按键,按下时将VCC接入IO
                        PWR_EnterSTANDBYMode();
}

1、仿真模式下,查看PWR寄存器设置时无法置位。
2、因为PWR的PWR_CR_PDDS置位无变化,所以最终进入的是stop模式,因为我将PA0配置成中断口能唤醒
3、以上程序如果不将PA0置为中断,则无法唤醒(目前个人分析是以上代码让MCU进入了stop)
目前,不知道怎么样才能进standby模式,我需要用WKUP1即PA0唤醒。

相关帖子

沙发
hehui000|  楼主 | 2014-3-28 12:27 | 只看该作者
追加:PWR_WakeUpPinCmd(PWR_WakeUpPin_1,ENABLE);//PA0按键,按下时将VCC接入IO
这条指令执行后,对应寄存器没有变化,同时用示波器测量该IO,没有变为下拉模式(手册上写明:此函数设置后,会将PA0配成下拉输入。)

使用特权

评论回复
板凳
sisyphos| | 2014-3-28 15:17 | 只看该作者
RCC_APB1PeriphResetCmd(RCC_APB1Periph_PWR, ENABLE);???
应该是 RCC_APB1PeriphClockCmd?

使用特权

评论回复
地板
hehui000|  楼主 | 2014-3-28 15:19 | 只看该作者
牛!!!!因为没时钟,所以写不了寄存器。

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝