stm32f030定时器输入捕获异常
STM32F030P4F6无法初始化IO输出高电平
STM32F030F4P6不能烧录程序
stm32f030c8t6移植商家的lcd12864-01A的代码,屏幕没反应,是怎么回事
stlink V3mini 调试器不能识别stm32f030F4P6芯片,有解决办法吗?
STM32F0 SMBus 中断怎么开启
基于GCC编译器的initcall在STM32如何实现?
想找一款pin to pin的MCU(参考STM32F105RC),支持CAN FD的,64PIN封装,各位小伙伴们有推荐吗
L9663如何使用上行缓冲区发送同步脉冲
如何使用定时器在任意IO输出PWM
开发环境:STM32F072RBT6+stm32cubemx+freertos
问题描述:
1。 开始发现进入STOP模式失败,在调用HAL_PWR_EnterSTOPMode前通过发现EXTI4_15_IRQn pending标志被置起
2。在进入stop前主动调用HAL_NVIC_ClearPendingIRQ主动去清EXTI4_15_IRQn的pending标志,发现还是无法清掉,在清标志前关闭IRQ也不行
// 清除EXTI中断标志 假设是PIN4的话 __HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_4);
感谢您的建议,现在更奇怪的问题是,我压根就没开EXTI中断,这个中断pending是怎么置起来的~
好些事件的中断都可能映射到EXTI4~15.
关于此处的问题,你这样试试:
HAL_NVIC_ClearPendingIRQ(EXTI4_15_IRQn);
另外进STOP前建议将SYSTICK也停掉。
感谢回复:)
上面的图片中有贴出代码,有使用HAL_NVIC_ClearPendingIRQ(EXTI4_15_IRQn);
在调用HAL_PWR_EnterSTOPMode(PWR_LOWPOWERREGULATOR_ON, PWR_STOPENTRY_WFI)前也有使用HAL_SuspendTick关掉时钟的,而且也是生效的(system tick用的TIM6,从NVIC调试界面看到TIM6的pending状态是有清掉的)
[md]应该是产生了中断请求事件,下面这句是必要的:
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_x);//清除外设端中断事件标志;
至于这句:
HAL_NVIC_ClearPendingIRQ(EXTI4_15_IRQn);本来不是必需的,但从你给出的截图来看,
现在的EXTI4_15的中断响应没有开启,所以这里才需要手动清除一下中断响应挂起位。