计数时间问题

2019-08-14 15:44发布

void Time4Init(void)
{
    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);
    TIM_TimeBaseStructure.TIM_Period = 65535;
    TIM_TimeBaseStructure.TIM_Prescaler = (72 - 1);//72M / 72 = 1us
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
    TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);
}

从0开始开启定时器TIM4  TIM_GetCounter(TIM4)得到的计数值 如何计算时间  单位是多少 拜托讲下
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
月无缺
2019-08-15 07:48
[mw_shl_code=c,true]TIM_TimeBaseStructure.TIM_Period = 1000 - 1;                //自动重装载值,定时时间 T = 1000 * 400/8M = 50ms
TIM_TimeBaseStructure.TIM_Prescaler = 400 - 1;                 //分频系数,(400-1+1)= 400分频
TIM_TimeBaseStructure.TIM_ClockDivision = 0;                 //设置时钟分割:TDTS = Tck_tim
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;                  //TIM向上计数模式
TIM_TimeBaseStructure.TIM_RepetitionCounter =0;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基

数单位
TIM_ClearFlag(TIM2,TIM_FLAG_Update);                //清除TIM更新标志
TIM_ClearITPendingBit(TIM2,TIM_FLAG_Update);        //清除中断标志
TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );         //使能指定的TIM2中断,允许更新中断
TIM_Cmd(TIM2, ENABLE); [/mw_shl_code]

一周热门 更多>