利用stm32f103的TIM2实现精确延时

来源:互联网 发布:2017淘宝销售排行 编辑:程序博客网 时间:2024/04/29 16:45


void TIM_ResetCounter(TIM_TypeDef * TIMx){    TIMx->CNT = 0;}void TIM2_Delay_ms(unsigned int cms){    unsigned short temp = 0;    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;    TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);        TIM_TimeBaseStructure.TIM_Prescaler = 36000 - 1;    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Down;    TIM_TimeBaseStructure.TIM_Period = cms * 2;    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);    TIM_Cmd(TIM2, ENABLE);    do    {        temp = TIM_GetCounter(TIM2);    }while(temp != 0x01);/*此处不能计数到0*/    TIM_Cmd(TIM2, DISABLE);    TIM_ResetCounter(TIM2);/*将计数寄存器的值恢复为0是必须的*/}


2 0