最近小弟用STM8S103K3又发现一个很奇怪的问题,求FAE和大神们指教//第一种中断格式
INTERRUPT_HANDLER(
tiM1_UPD_OVF_TRG_BRK_IRQHandler, 11) //250ms 中断
{
disableInterrupts();
用户程序
TIM1->SR1 = 0xfe;
enableInterrupts(); //开中断
}
//第二种中断格式
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11) //250ms 中断
{
TIM1->SR1 = 0xfe;
disableInterrupts();
用户程序
enableInterrupts(); //开中断
}
//第三种中断格式
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11) //250ms 中断
{
TIM1->SR1 = 0xfe;
用户程序
}
由于个人写程序的习惯,以前中断一直用第一种写法。在STM8S103k3上面,他它竟然会连进两次中断,但是第二种和第三种会正常。个人也是刚工作不久,好多问题不明白,群里的大神指导。我以前一直用飞思卡尔的
单片机,中断程序用第一种、第二种、第三种都没有问题,从来也没在意,最近调程序出现了问题,才找到了这个原因。
用ST_LINK
仿真可以看到,对于第一种写法,第二次进中断是在标志位为0的情况下。小弟刚用STM8S几天,出现了很多问题,求大神们指导下,坛主关心一下小弟。