江飞雪 发表于 2017-7-28 20:51:29

STM8L151中断问题,不能同时初始化同一中断线的两个管脚

请问,STM8中断问题,不能同时初始化同一中断线的两个管脚,比如PC4,PD4,对应中断线EXTI4,如果同时初始化PC4/PD4的终端,则中断不能正常工作。PD4对应按键中断,如果不初始化PIR(红外)中断,按键是正常的,只要初始化红外的GPIO中断,按键中断就会出问题。请问这是什么问题啊,难道同一中断线同时只能有一个使用一个中断吗?跪谢void pir_gpio_init(void)
{
    /* pri gpio */
    GPIO_Init(GPIOC, GPIO_Pin_4, GPIO_Mode_In_PU_IT);
    EXTI_SetPinSensitivity(EXTI_Pin_4, EXTI_Trigger_Rising_Falling);
    ITC_SetSoftwarePriority(EXTI4_IRQn, ITC_PriorityLevel_2);
}

void key_gpio_init(void)
{
    key_down_flag = 0;
    //EXTI_DeInit();
    GPIO_Init(GPIOD, GPIO_Pin_4, GPIO_Mode_In_PU_IT);
    //EXTI_SetPortSensitivity(EXTI_Port_D, EXTI_Trigger_Falling);
    EXTI_SetPinSensitivity(EXTI_Pin_4, EXTI_Trigger_Rising);
    ITC_SetSoftwarePriority(EXTI4_IRQn, ITC_PriorityLevel_1);
}


江飞雪 发表于 2017-7-31 10:59:13

有前辈指导一下吗?

sssdd 发表于 2017-8-4 10:03:02

试试直接操作寄存器。库函数里面做了啥可以自己去翻翻看。
有可能是设置上下沿的时候覆盖了别的中断设置。
优先级尽量不要去设置。有发现设置优先级导致运行故障的。

重庆破锅 发表于 2018-6-22 17:38:42

如何解决的呢?
页: [1]
查看完整版本: STM8L151中断问题,不能同时初始化同一中断线的两个管脚