prayer521

定时器初始化配置

 1 void TIM3_Configuration(void)//1MS
 2 {
 3     TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
 4         
 5         TIM_DeInit(TIM3);//开一下时钟再关闭
 6         /* 设置TIM2CLK 为 72MHZ */
 7     RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3 , ENABLE);
 8     
 9        
10     /* 自动重装载寄存器周期的值(计数值) */
11     TIM_TimeBaseStructure.TIM_Period=1000-1;
12     
13     /* 累计 TIM_Period个频率后产生一个更新或者中断 */
14     TIM_TimeBaseStructure.TIM_Prescaler= 71;
15         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;/* 时钟预分频数为72 */
16     TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up; 
17     TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);
18         
19     TIM_ClearFlag(TIM3, TIM_FLAG_Update);
20         TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
21         TIM_ARRPreloadConfig(TIM3, ENABLE); 
22     TIM_Cmd(TIM3, ENABLE);                                                                        
23         
24 }

NVIC配置

void TIM3_NVIC_Configuration(void)
{
    NVIC_InitTypeDef NVIC_InitStructure; 
    
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);                                                      
    NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;      
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 3;
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;    
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
    NVIC_Init(&NVIC_InitStructure);
}

正常情况下是先配置好定时器参数设置,再配置NVIC中断-》使能中断。

分类:

技术点:

相关文章:

  • 2022-12-23
  • 2022-02-08
  • 2021-10-09
  • 2022-01-13
  • 2021-10-13
  • 2021-12-07
猜你喜欢
  • 2021-06-23
  • 2021-06-16
  • 2021-09-25
  • 2022-02-08
  • 2021-12-05
相关资源
相似解决方案