打印
[STM32]

待机唤醒不了

[复制链接]
913|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wuhai5|  楼主 | 2020-7-26 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[img]C:\Users\Administrator.DESKTOP-USQKCLU\Desktop\QQ图片20200726090602;C:\Users\Administrator.DESKTOP-USQKCLU\[img][/img]Desktop\QQ图片20200726090703[/img]创建了两个任务,一是定义按键唤醒,二是定义另一个按键进入待机,现在是能进入待机,但是除了复位键唤醒不了

使用特权

评论回复

相关帖子

沙发
wuhai5|  楼主 | 2020-7-26 09:15 | 只看该作者
不会上传图片,贴了程序如下
程序:osal_int_connect(KEY2_EXTI_IRQn,2,0,key2_wkup_task_entry,NULL);//WKUP按键2中断唤醒睡眠
          osal_int_connect(KEY1_EXTI_IRQn,2,0,key1_stop_task_entry,NULL);//按键1按下执行中断停止

         static int key1_stop_task_entry()
   {
         if((HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_2)) == 0) //若是按键1按下进行睡眠
       {

            __HAL_RCC_PWR_CLK_ENABLE(); // 使能 PWR 时钟
            
            __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU); // 清除 Wake_UP 标志       
            HAL_PWR_EnableWakeUpPin(PWR_WAKEUP_PIN1); // 设置 WKUP         PIN1---PA0!!!!!!!!!!!!!!!
            HAL_PWR_EnterSTANDBYMode(); // 进入待机模式
      }
       __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_2);//清除中断标志位
}

      static int key2_wkup_task_entry()
{
     if((HAL_GPIO_ReadPin(GPIOB, GPIO_PIN_3)) == 0) //若是按键(对应PB3==0)按下后执行(PA0致与高位)触发中断进行唤醒
    {
       HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0, GPIO_PIN_SET);
     }
      __HAL_GPIO_EXTI_CLEAR_FLAG(GPIO_PIN_3);//清除中断标志位
}

使用特权

评论回复
板凳
sonicll| | 2020-7-27 18:02 | 只看该作者
你对PA0唤醒standy模式的理解有问题,在芯片外部给PA0管脚一个上升沿就能唤醒了,你这代码先检测PB3按下,芯片都已经standby了,普通的GPIO都不工作了,还怎么检测

使用特权

评论回复
地板
chunyang| | 2020-7-31 23:28 | 只看该作者
先确认你的唤醒键是否接到的是支持唤醒的IO上,常规IO可不行。

使用特权

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

本版积分规则

1

主题

2

帖子

0

粉丝