STM32定时器设置浅谈

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32定时器设置浅谈相关的知识,希望对你有一定的参考价值。

1、嵌套中断控制器的配置

void NVIC_Configuration()

{

     NVIC_InitTypeDef  NVIC_InitStructure;

     NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);//

 

  •         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); 
  •         //选择TIM2的中断通道 
  •  
  •         NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQChannel;      
  •  
  •         //抢占式中断优先级设置为0 
  •  
  •         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; 
  •  
  •        //响应式中断优先级设置为0 
  •  
  •         NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; 
  •  
  •         //使能中断 
  •  
  •         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; 
  •         NVIC_Init(&NVIC_InitStructure);
  • voidTimer_Config(void) 
  • {  
  •  
  •     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);  
  •  
  •     TIM_DeInit(TIM2); 
  •  
  •     TIM_TimeBaseStructure.TIM_Period=2000-1;  //自动重装载寄存器的值 
  •  
  •     TIM_TimeBaseStructure.TIM_Prescaler=(36000-1);         //时钟预分频数 
  •  
  •     TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;  //采样分频 
  •  
  •      TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式 
  •     TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure); 
  •  
  •     TIM_ClearFlag(TIM2,TIM_FLAG_Update);               //清除溢出中断标志 
  •  
  •     TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE); 
  •  
  •      TIM_Cmd(TIM2,ENABLE);                              /开启时钟 
  •  

2、发生中断时间

发生中断时间 =(TIM_Prescaler+1)*(TIM_Period+1)/FLK

例如:发生中断时间 (2000-1+1)*(36000-1+1)/72000000 =1秒

 

以上是关于STM32定时器设置浅谈的主要内容,如果未能解决你的问题,请参考以下文章

STM32 定时器中断

STM32定时器参数设置(TIM_PrescalerTIM_Period)

STM32定时器触发ADC怎么配置

STM32 PWM 输出定时器(计数器设置)的计算公式

STM32F7 定时器触发定时器

STM32学习笔记——通用定时器计数延时