[STM32F1] stm32外部计数,溢出中断只能进入一次

[复制链接]
1973|3
 楼主| woshic23 发表于 2016-2-29 17:37 | 显示全部楼层 |阅读模式
我用stm32的ETR功能对外部脉冲计数,达到设定值时产生溢出中断,但只能进入中断一次,后面就无法进入,但外部脉冲数达到设定值时同样会清0.初始化如下,请有经验的朋友帮忙看一下

TIM_DeInit(TIM1);
    TIM_TimeBaseStructure.TIM_Period = 500;
    TIM_TimeBaseStructure.TIM_Prescaler =0;
    TIM_TimeBaseStructure.TIM_ClockDivision = 0;//TIM_CKD_DIV1;
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit( TIM1, &TIM_TimeBaseStructure );
    TIM_ETRClockMode2Config(TIM1, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);

    TIM_SetCounter(TIM1, 0);
    TIM_ClearFlag( TIM1, TIM_FLAG_Update );
    TIM_ITConfig( TIM1,TIM_IT_Update,ENABLE );//TIM_ITConfig( TIM1,TIM_IT_Update|TIM_IT_CC1,ENABLE );
    TIM_Cmd( TIM1,ENABLE );   

void TIM1_UP_IRQHandler(void)
{
    //TIM_ClearITPendingBit(TIM1, TIM_IT_Update);
    TIM_ClearFlag( TIM1, TIM_FLAG_Update );
#ifdef      __debug
        printf("tim1 cnt:%d  arr:%d\r\n",TIM1->CNT,TIM1->ARR);
#endif   
}
 楼主| woshic23 发表于 2016-2-29 17:40 | 显示全部楼层
stm32手册看了半天,让人摸不着头脑,说的乱七八糟的,看惯了NXP和TI的数据手册,感觉st的真是相差甚远
 楼主| woshic23 发表于 2016-2-29 18:08 | 显示全部楼层
解决了少了一个初始化TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
airwill 发表于 2016-2-29 18:50 | 显示全部楼层
呵呵, 这是个溢出率分频的寄存器. 不说出来, 还不容易想到它
支持一下楼主, 自己找到原因了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

108

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部