这是我用来实验的中断服务程序:
void TIM2_IRQHandler(void) //定时器2中断服务程序
{
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
EXTI_GenerateSWInterrupt(EXTI_Line1); //???
}
void EXTI1_IRQHandler(void) //线路1中断服务程序
{
EXTI_ClearITPendingBit(EXTI_Line1);
}
我试过,软中断EXTI_GenerateSWInterrupt(EXTI_Line1); 在主程序中时,两给中断服务程序都能正常运行,但是当放到定时器的服务程序时,就无法进入void EXTI1_IRQHandler(void)了,求解惑?
此帖出自
小平头技术问答
EXTIStatus = EXTI_GetITStatus(EXTI_Line1);
用来检测线路1是否发生请求,结果一直都是RESET状态,也就是在定时器中断服务程序执行语句
EXTI_GenerateSWInterrupt(EXTI_Line1);
后,并没有产生中断请求,不知道为什么。。。
求大神指点!
一周热门 更多>