测试条件,使用Jlink仿真,芯片STM32F103ZET6
使用定时器3,定时周期10MS.只设置定时器溢出产生中断
定时器3中断函数:
void TIM3_IRQHandler(void)
{
static vu16 aa;
aa += 1;
TIM3->SR = 0;
}
测试运行10S,aa累计值2000左右,比正常值大一倍,相当于一次定时器溢出执行了两次中断。
代码换为:
void TIM3_IRQHandler(void)
{
static vu16 aa;
TIM3->SR = 0;
aa += 1;
}
测试运行10S,aa累计值1000左右,正常!
改为软件仿真,以上两种代码均正常!
不知道是不是STM32芯片个例还是通病,
|