• STM32 通用T2、T3、T4、T5定时器详解


    定时器初始化配置

     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中断-》使能中断。

  • 相关阅读:
    软件架构阅读笔记04
    软件架构阅读笔记03
    TortoiseGit和intellij idea配置秘钥
    linux关闭在线登录用户
    汉化gitlab
    GitLab服务器搭建
    redis 中如何切换db
    弹性伸缩问题
    Filebeat+Logstash自定义多索引
    logstash
  • 原文地址:https://www.cnblogs.com/prayer521/p/5884431.html
Copyright © 2020-2023  润新知