码迷,mamicode.com
首页 > 其他好文 > 详细

STM32定时器设置浅谈

时间:2017-05-02 19:45:49      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:nbsp   timer   tco   rip   时间   清除   ann   group   cmd   

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定时器设置浅谈

标签:nbsp   timer   tco   rip   时间   清除   ann   group   cmd   

原文地址:http://www.cnblogs.com/oliverlucqut/p/6797586.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!