打印
[STM32L4]

休眠后外部中断不能进入

[复制链接]
607|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhenxizhou|  楼主 | 2020-7-24 15:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
PC3做为外部中断,管脚定义如下:
GPIO_InitStruct.Pin    = TOUCH_INT_PIN;
  GPIO_InitStruct.Mode   = LL_GPIO_MODE_INPUT;
  GPIO_InitStruct.Pull   = LL_GPIO_PULL_NO;
  GPIO_InitStruct.Speed  = LL_GPIO_SPEED_FREQ_LOW;
  LL_GPIO_Init(TOUCH_INT_PORT, &GPIO_InitStruct);
  
  LL_SYSCFG_SetEXTISource(TOUCH_EXTI_PORT, TOUCH_EXTI_SOUR);
  
  EXTI_InitStruct.Line_0_31 = TOUCH_WAKE_LINE;
  EXTI_InitStruct.Line_32_63 = LL_EXTI_LINE_NONE;
  EXTI_InitStruct.LineCommand = ENABLE;
  EXTI_InitStruct.Mode = LL_EXTI_MODE_IT;
  EXTI_InitStruct.Trigger = LL_EXTI_TRIGGER_FALLING;
  LL_EXTI_Init(&EXTI_InitStruct);

  NVIC_SetPriority(TOUCH_WAKE_IRQn, NVIC_EncodePriority(NVIC_GetPriorityGrouping(), 1, 0));
  NVIC_EnableIRQ(TOUCH_WAKE_IRQn);

中断响应函数:
void EXTI3_IRQHandler(void)
{
        if (LL_EXTI_IsActiveFlag_0_31(TOUCH_WAKE_LINE) != RESET)
        {
                printf("touch wake\r\n");
                LL_EXTI_ClearFlag_0_31(TOUCH_WAKE_LINE);
        }
}
当MCU没有进入休眠时,外设动作能收到中断,打印touch wake
当MCU进入stop2模式后,外设动作(通过示波器看到有中断信号)不能进入EXTI3_IRQHandler。
请问是什么原因?谢谢

使用特权

评论回复
沙发
sonicll| | 2020-7-24 17:30 | 只看该作者
有可能是进入了中断服务函数,但是没有正确打印出来,进stop模式唤醒后,系统时钟会发生变化,需要重新配置串口波特率才行。你可以试试在中断服务函数里加个GPIO拉高拉低看看

使用特权

评论回复
板凳
zhenxizhou|  楼主 | 2020-7-28 14:28 | 只看该作者
解决了,是别人进休眠时把所有的IO都重置了

使用特权

评论回复
地板
香水城| | 2020-7-28 17:39 | 只看该作者
这个贴怎么在哪里见过。 感谢分享!

使用特权

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

本版积分规则

37

主题

76

帖子

2

粉丝