stm8设置3个中断,仅有一个能触发,寻求帮助

2019-07-19 21:36发布

[mw_shl_code=c,true]//按键中断 void USER_KEY_Init(void) { //首先我们把KEY的GPIO设置为输入中断使能 GPIO_Init(GPIOB,GPIO_Pin_1,GPIO_Mode_In_PU_IT); //然后配置中断1为下降沿低电平触发 EXTI_SetPinSensitivity(EXTI_Pin_1, EXTI_Trigger_Falling_Low); // ITC_SetSoftwarePriority(EXTI1_IRQn, ITC_PriorityLevel_3); //开全局中断 enableInterrupts(); } //按键中断服务函数 INTERRUPT_HANDLER(EXTI1_IRQHandler, 9) { while(!KEY1); Delay(5000); while(!KEY1); GPIO_ToggleBits(GPIOB, GPIO_Pin_0); GPIO_ToggleBits(GPIOB, GPIO_Pin_2); EXTI_ClearITPendingBit(EXTI_IT_Pin1); } void USER_Chuanganqi1_Init(void) { GPIO_Init(GPIOC, GPIO_Pin_4 , GPIO_Mode_In_PU_IT); EXTI_DeInit(); EXTI_SetPinSensitivity(EXTI_Pin_4, EXTI_Trigger_Falling_Low); //ITC_SetSoftwarePriority(EXTI4_IRQn, ITC_PriorityLevel_3); //开全局中断 enableInterrupts(); } //PC4中断服务函数 INTERRUPT_HANDLER(EXTI4_IRQHandler, 12) { while(!GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)); Delay(500); while(GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_4)); GPIO_ToggleBits(GPIOB, GPIO_Pin_2); GPIO_ToggleBits(GPIOB, GPIO_Pin_0);; EXTI_ClearITPendingBit(EXTI_IT_Pin4); } void USER_Chuanganqi2_Init(void) { //首先我们把KEY的GPIO设置为输入中断使能 GPIO_Init(GPIOD,GPIO_Pin_0,GPIO_Mode_In_PU_IT); EXTI_DeInit(); //然后配置中断1为下降沿低电平触发 EXTI_SetPinSensitivity(EXTI_Pin_0, EXTI_Trigger_Falling_Low); //ITC_SetSoftwarePriority(EXTI0_IRQn, ITC_PriorityLevel_2); //开全局中断 enableInterrupts(); } //PD0中断服务函数 INTERRUPT_HANDLER(EXTI0_IRQHandler, 8) { while(!GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_0)); Delay(5000); while(GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_0)); GPIO_ToggleBits(GPIOB, GPIO_Pin_2); GPIO_ToggleBits(GPIOB, GPIO_Pin_0);; EXTI_ClearITPendingBit(EXTI_IT_Pin0); } [/mw_shl_code]
只有PC4这个IO口能触发中断,请帮忙看下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。