STM32 外部中断很容易受干扰误触发,无论上拉下拉设置都没有效果,最后采用软件判断解决该问题。
进入外部中断程序需同时判断引脚电平是否和上升触发和下降触发一致,这个判断很重要。文章来源:https://www.toymoban.com/news/detail-540663.html
void EXTI3_IRQHandler()
{
__HAL_GPIO_EXTI_CLEAR_IT(GPIO_PIN_3);
if((EXTI->FTSR & 0x0008)&&(PBin(3)==0))
{
EXTI->FTSR &= ~0x0008;
EXTI->RTSR |= 0x0008;
__HAL_TIM_SET_COUNTER(&TIM3_Handler,2);
SysParameter.EncoderVauleMul_A =0;
SysParameter.EncoderVaule_A =0;
__HAL_TIM_SET_COUNTER(&TIM1_Handler,2);
SysParameter.EncoderVauleMul_AM =0;
SysParameter.EncoderVaule_AM =0;
SysParameter.GRStatus_A |= 0x01;
}
if((EXTI->RTSR & 0x0008)&&(PBin(3)))
{
EXTI->RTSR &= ~0x0008;
EXTI->FTSR |= 0x0008;
}
}文章来源地址https://www.toymoban.com/news/detail-540663.html
到了这里,关于STM32外部中断干扰解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!