zoukankan      html  css  js  c++  java
  • STM32定时器的小问题总结

         stm32的定时器用的时候是根据原子开发版的程序直接应用的,用的时候也没有具体的考量,但是在用的时候出现了一个问题,就是定时器的中断在设置之后,并没有打开定时器但是程序执行到这里就会进入中断,如果中断中有其他一些硬件功能,例如在定时器中发送一些数据,而这个时候串口并没有初始化时,就是出现程序死在这里的问题。通过网上查找资料发现是定时器中断标志未清除的问题,调用TIM_ClearFlag函数之后就不会发生以上问题了。看来在硬件配置时一定要注意这个问题,不管是其他外围设备的初始化都需要注意。之前看到SPI、USART等初始化的时候会经常加上XXX_DeInit()函数,看来也并非多余,对于硬件初始化是很有必要的,纪尽管在手册上看到这些值的初始值都是0,但是在应用中还是出现这种问题,因此今后在应用中一定的多加注意。具体初始化程序如下:

    void TIM2_Init(void)
    {
      TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
    NVIC_InitTypeDef NVIC_InitStructure;


    RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); //时钟使能
    TIM_DeInit(TIM2);
    //定时器TIM2初始化
    TIM_TimeBaseStructure.TIM_Period = 7199; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
    TIM_TimeBaseStructure.TIM_Prescaler =9999; //设置用来作为TIMx时钟频率除数的预分频值 输出周期为T=(Prescaler+1)(Period+1)/72M
    TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
    TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  //TIM向上计数模式
    TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
     
    // TIM_ITConfig(TIM2,TIM_IT_Update|TIM_IT_Trigger,ENABLE ); //使能指定的TIM2中断,允许更新中断
    TIM_ClearFlag(TIM2 , TIM_FLAG_Update); //清除中断标志
    TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE ); //使能指定的TIM2中断,允许更新中断


    //中断优先级NVIC设置
    NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;  //TIM2中断
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;  //先占优先级3级 优先级设置最低
    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;  //从优先级3级
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
    NVIC_Init(&NVIC_InitStructure);  //初始化NVIC寄存器

    }

    这是定时器的更新中断,还有定时捕获模式等,这些可以更加灵活的用于一些需要定时器的问题中,

  • 相关阅读:
    gulp-css-spriter 将css代码中的切片图片合并成雪碧图
    通过JS模拟select表单,达到美化效果[demo]
    jQuery拖拽 & 弹出层
    sublime text 快速编码技巧 GIT图
    原生JS不到30行,实现类似javascript MVC的功能-minTemplate
    javascript拖拽原理与简单实现方法[demo]
    滚动焦点图实现原理和实践[原创视频]
    谈一谈值类型与引用类型和装箱与拆箱
    【原创】asp.net内部原理(三) 第三个版本 (最详细的版本)
    由JS函数返回值引发的一场”血案"
  • 原文地址:https://www.cnblogs.com/longbiao831/p/4556287.html
Copyright © 2011-2022 走看看