void
tiM3_IRQHandler(void) //TIM3中断
{
u8 time;
IF (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
{
LED1=!LED1;
TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
}
time++;
if(time==8)
{
LED1=0;
// TIM_Cmd(TIM3, DISABLE);
time=0;
}
}
你的程序中的time最大只能为1,因为每次中断函数结束就将time清零了。
可以用串口输出time的值就清楚问题了发生的原因 最佳答案
一周热门 更多>