STM32休眠后经常唤不醒

2019-07-14 13:50发布

[tr]请教一下STM32 休眠后有很多时侯唤不醒!!!连硬复位都没有用,也就是单片机睡死了!!!请教是片子本身的问题吗?
[/tr]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
jsvuweur
1楼-- · 2019-07-15 22:15
没有说具体情况,休眠方式、唤醒方式。
lukyhong
2楼-- · 2019-07-16 00:08
谢谢,我把代码贴出来给大家看下,是的复位都不行,只有重新上电才可以,好可怕啊,以前用AVR没这种现象。
lukyhong
3楼-- · 2019-07-16 05:44
void GpioConfig(void)
{
//   EXTI_InitTypeDef   EXTI_InitStructure;
    GPIO_InitTypeDef   GPIO_InitStructure;

    //*************************************************************************************¶Ë¿ÚB³õʼ»¯        PB12¡¢PB13ΪÊä³ö    PB10¡¢PB14ΪÊäÈë
    //*************************************************************ʹÄÜGPIOA GPIOBʱÖÓ
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB,ENABLE);
       
    //*************************************************************ʹÄÜ SYSCFG ʱÖÓ
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
       
    //*************************************************************ʹÄܱ¸·ÝÓòµçÔ´¿ØÖƼĴæÆ÷
          RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);
        //  PWR_BackupRegulatorCmd(ENABLE);
          PWR->CR |= 0x00000100;
       
       
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM,ENABLE);       
       
       
    PWR->CSR |= PWR_CSR_BRE;
       
          //*****************************************************ʹÄܱ¸·ÝÓò       
          PWR_BackupAccessCmd(ENABLE);       
       
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_BKPSRAM,ENABLE);       
       
    //*************************************************************¶Ë¿ÚBÅäÖóõʼ»¯   GPIOB_OTYPER¼Ä´æÆ÷    | GPIO_Pin_14
          GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12| GPIO_Pin_14;         //¶Ë¿Ú12Êä³ö   GPIO_OType_PP
          GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;                    //¿ªÂ©Êä³ö  GPIO_OType_OD         
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;                   //ÉÏÀ­
    GPIO_Init(GPIOB, &GPIO_InitStructure);
       
     /* Configure PA0 pin as input floating */
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_DOWN;
          GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
    GPIO_Init(GPIOA, &GPIO_InitStructure);
               
          //*****************************************************PB1.4ĬÈÏÊä³öµÍµçƽ
          GPIO_ResetBits(GPIOB,GPIO_Pin_14);               
               
    //*************************************************************´®¿Ú³õʼ»¯
                USART2_GPIO_Config();
}

//*********************************************************************************************
//¹¦ÄÜ£ºADCͨµÀת»»
//Èë¿Ú£ºÎÞ
//³ö¿Ú£ºÎÞ

void ADC3_IN11_Config(void)
{
          GPIO_InitTypeDef   GPIO_InitStructure;
    //************************************************GPIOÅäÖÃ
    RCC->AHB1ENR|=(1<<2);              //´ò¿ªGPIOCʱÖÓ
        //GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
        //GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;   

    GPIOC->MODER&=0xfffffff3;          //PC1Ä£Äâģʽ

    GPIOC->MODER|=0x0000000C;

    GPIOC->PUPDR&=0xfffffff3;          //½ûÖ¹ÉÏÏÂÀ­

    //****************************************************ADC3ÉèÖÃ
    RCC->APB2ENR|=(1<<10);            //ʹÄÜADC3ʱÖÓ
    ADC3->SQR1=0x00000000;            //1¸öͨµÀת»»
    ADC3->SQR3=0x0000000B;            //µÚÒ»¸öͨµÀΪADC3_in11

    ADC3->CR1&=0x00000000;

    ADC3->CR2&=0x00000000;

    ADC3->CR2|=(1<<1);                //Á¬Ðøת»»

    ADC3->CR2|=(1<<0);                //¿ªÆôADת»»

    ADC3->CR2|=(1<<30);               //¹æÔòͨµÀת»»¿ªÊ¼
}
lukyhong
4楼-- · 2019-07-16 08:54
void PowerOff(void)
{       
    //***********************************½øÈëÐÝÃß       
          RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC | RCC_AHB1Periph_GPIOB, DISABLE);   //RCC_AHB1Periph_GPIOA
                RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3, DISABLE);

                RCC_AHB1PeriphResetCmd(0X1FF,ENABLE);
                RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR,ENABLE);       

          //***********************************ʹÄÜ»½ÐÑ
                PWR_WakeUpPinCmd(ENABLE);
       
                PWR_FlashPowerDownCmd(ENABLE);       
       
                PWR_EnterSTANDBYMode();
}

一周热门 更多>