中级会员
 
- 积分
- 220
- 金钱
- 220
- 注册时间
- 2015-7-27
- 在线时间
- 26 小时
|
15金钱
//定时器4中断服务程序
void TIM4_IRQHandler(void) //TIM4中断
{
if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET) //检查TIM4更新中断发生与否
{
TIM_ClearITPendingBit(TIM4, TIM_IT_Update ); //清除TIMx更新中断标志
n++;
V_count=TIM_GetCounter(TIM1); //读取计数器的值
printf("count=%d\n",V_count);
TIM_SetCounter(TIM1, 0); //将计数寄存器值清零
while(1); <<<<<<<<<<<<<<<<<<<<<问题在这!!!!!
printf("count\n");
}
}
大神们,问题就在这!我配置好定时中断后,每100ms进入一次中断,进入中断后,我先将标志位清除,没毛病吧?清除标志位之后,计数器应该又重新开始计数了,我下边写了一个while(1)。中断里边应该不会卡在这啊。对吗??能明白我意思吗???但是现在的效果是,卡了!!卡在while(1)了。printf("count=%d\n",V_count);这句话就执行了一次。printf("count\n");这句话,没执行。!!到底是啥问题!!还是32的中断不好使。。。
|
|