STM32定时器普通定时
  pbfHt7yP3Hym 2023年11月02日 61 0

定时器时间计算:定时器时钟/分频/PER/ARR=频率 。时间=1/频率

若用定时器的PWM控制步进电机驱动器,则要看相关电机的驱动频率,然后开启中断选择CCx做为中断源(定时器的计时器和比较去比),进入一次中断就说明发了一次脉冲。

1:开启成功定时器的时钟。

2:初始化定时器(部分参数只有高级定时器才有/基本定时器只能CNT加计时,不可以减)

3:配置相关定时器的中断NVIC

4:开启定时器中断;

5:CMD定时器:就开始定时了。定时时间看第一句

进入中断后,记得清除中断标志位哇。

配置:

/*

函数名:void time2_init(void)

功能:初始化定时器2

形参:

*/

void time2_init(void)

{

  TIM_TimeBaseInitTypeDef TIM2_TimeBaseInitStruct;

    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//开启定时器2的时钟

  TIM2_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;//定时器不分频  分频 系统时钟/分频

  TIM2_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;//计时模式 向上

  TIM2_TimeBaseInitStruct.TIM_Period=719;//per 预分系数    决定频率

  TIM2_TimeBaseInitStruct.TIM_Prescaler=9999;//arr 重载值   实际计算 定时器时钟/arr+1/per+1=时间    1/时间=

  TIM_TimeBaseInit(TIM2,&TIM2_TimeBaseInitStruct);

  TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);//开启定时器2的中断

  TIM_Cmd(TIM2,ENABLE);//定时器开始定时

}

NCIV:

void nvic_init(void)

{

    NVIC_InitTypeDef NVIC_tim2_InitStruct;

    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//NVIC分组

    NVIC_tim2_InitStruct.NVIC_IRQChannel=TIM2_IRQn;//NVIC中断源选择

    NVIC_tim2_InitStruct.NVIC_IRQChannelCmd=ENABLE;//开启定时器2的中断

    NVIC_tim2_InitStruct.NVIC_IRQChannelPreemptionPriority=2;//分组强

    NVIC_tim2_InitStruct.NVIC_IRQChannelSubPriority=2;//子优先

    NVIC_Init(&NVIC_tim2_InitStruct);

}

中断函数

/*

函数名:TIM2_IRQHandler(void)

功能:定时器2中断 0.1S进入中断

形参:

*/

u16 temp=0;

void TIM2_IRQHandler(void)

{


  if(TIM_GetITStatus(TIM2,TIM_IT_Update))

  {

        temp++;

        if(temp<10)

        {

            GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_5);

        }

        else if(temp>10&&temp<=20)

        {

            GPIO_ResetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_5);

            if(temp>=20)

            {

                temp=0;

            }

        }


  }

  TIM_ClearITPendingBit(TIM2,TIM_IT_Update);

}






【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  tprTMCWDkFAR   2023年12月07日   31   0   0 头文件#include初始化
pbfHt7yP3Hym