×
嵌入式 > 技术百科 > 详情

STM8S TIM1库函数应用

发布时间:2020-06-03 发布时间:
|

个人觉得ST的库函数用起来还是挺不错的,之前都是使用自己写的函数,容易改出错,以下是验证过的,TIM1定时100微妙中断一次。


void TIM1_TimeBaseInit(u16 TIM1_Prescaler,

                       TIM1_CounterMode_TypeDef TIM1_CounterMode,

                       u16 TIM1_Period,

                       u8 TIM1_RepetitionCounter)

{

 

    /* Check parameters */

    assert_param(IS_TIM1_COUNTER_MODE_OK(TIM1_CounterMode));

 

    /* Set the Autoreload value */

    TIM1->ARRH = (u8)(TIM1_Period >> 8);

    TIM1->ARRL = (u8)(TIM1_Period);

 

    /* Set the Prescaler value */

    TIM1->PSCRH = (u8)(TIM1_Prescaler >> 8);

    TIM1->PSCRL = (u8)(TIM1_Prescaler);

 

    /* Select the Counter Mode */

    TIM1->CR1 = (u8)(((TIM1->CR1) & (u8)(~(TIM1_CR1_CMS | TIM1_CR1_DIR))) | (u8)(TIM1_CounterMode));

 

    /* Set the Repetition Counter value */

    TIM1->RCR = TIM1_RepetitionCounter;

 

}

 

void TIM1_Cmd(FunctionalState NewState)

{

    /* Check the parameters */

    assert_param(IS_FUNCTIONALSTATE_OK(NewState));

 

    /* set or Reset the CEN Bit */

    if (NewState != DISABLE)

    {

        TIM1->CR1 |= TIM1_CR1_CEN;

    }

    else

    {

        TIM1->CR1 &= (u8)(~TIM1_CR1_CEN);

    }

}

 

void TIM1_ITConfig(TIM1_IT_TypeDef  TIM1_IT, FunctionalState NewState)

{

    /* Check the parameters */

    assert_param(IS_TIM1_IT_OK(TIM1_IT));

    assert_param(IS_FUNCTIONALSTATE_OK(NewState));

 

    if (NewState != DISABLE)

    {

        /* Enable the Interrupt sources */

        TIM1->IER |= (u8)TIM1_IT;

    }

    else

    {

        /* Disable the Interrupt sources */

        TIM1->IER &= (u8)(~(u8)TIM1_IT);

    }

}

 

void TIM1_TimerInit(u16 Timer1Time) 

{

  assert_param(IS_TIM1TIMERTIME_OK(Timer1Time));

   

  TIM1_DeInit();//复位TIM1所有参数

  TIM1_TimeBaseInit(TIM1_PRESCALER_16,TIM1_COUNTERMODE_DOWN,Timer1Time,0);

  //TIM1的预分频器基于一个由16位寄存器

  //选择16分频 16M/16=1M  周期为1us 

  TIM1_Cmd(ENABLE);//使能计时器

  TIM1_ITConfig(TIM1_IT_UPDATE,ENABLE);//使能TIM1中断

}

初始化时,调用

TIM1_TimerInit(100);//定时中断100微妙一次


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
无人机新突破:或将利用手机发射塔追踪无人机