STM32定时器中断实验-TIM3

发布者:ziyunting最新更新时间:2019-02-14 来源: eefocus关键字:STM32  定时器  中断实验  TIM3 手机看文章 扫描二维码
随时随地手机看文章

1、参考资料

      《STM32F1开发指南-库函数版本》-第13章 定时器中断时实验

      《STM32中文参考手册V10》-第14章 通用定时器


2、时钟选择

       计数器时钟可以由下列时钟源提供:

          ①内部时钟(CK_INT)

          ②外部时钟模式1:外部输入脚(TIx)

          ③外部时钟模式2:外部触发输入(ETR)

          ④内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器,

            如可以配置一个定时器Timer1而作为另一个定时器Timer2的预分频器。

            

3、内部时钟选择


  


4、时钟计算方法


  


      除非APB1的分频系数是1,否则通用定时器的时钟等于APB1时钟的2倍。

      默认调用SystemInit函数情况下:

         SYSCLK = 72M

         AHB时钟=72M

         APB1时钟=36M

         所以APB1的分频系数=AHB/APB1时钟=2

         所以,通用定时器时钟CK_INT = 2*36M = 72M

         

5、计数器模式

    通用定时器可以向上计数、向下计数、向上向下双向计数模式。

    ①向上计数模式:计数器0计数到自动加载值(TIMx_ARR),然后重新从0开始计数并且产生一个计数器溢出事件。

    ②向下计数模式:计数器自动装入的值(TIMx_ARR)开始向下计数到0,然后从自动装入的值重新开始,并产生一个计数器向下溢出事件。

    ③中央对齐模式(向上/向下计数):计数器从0开始计数到自动装入的值-1,产生一个计数器溢出事件,然后向下计数到1并且产生一个计数器溢出事件;然后在从0开始重新计数。


  

6、向下计数模式(时钟分频因子=1)

 


   向上计数模式(时钟分频因子=1)



   中央对齐计数模式(时钟分频因子=1 ARR=6)



7、定时器中断实验相关寄存器

     ·计数器当前值寄存器CNT


  


     ·预分频寄存器TIMx_PSC


  


     ·自动重装载寄存器(TIMx_ARR)


    


     ·控制寄存器1(TIMx_CR1)


  


     ·DMA中断使能寄存器(TIMx_DIER)


    


     ·常用库函数

        定时器参数初始化:

            void TIM_TimeBaseInit(TIM_TypeDef* TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);

            

            typedef struct

                        {

                          uint16_t TIM_Prescaler;        

                          uint16_t TIM_CounterMode;     

                          uint16_t TIM_Period;        

                          uint16_t TIM_ClockDivision;  

                          uint8_t TIM_RepetitionCounter;

                        } TIM_TimeBaseInitTypeDef; 

  

             TIM_TimeBaseStructure.TIM_Period = 4999; 

             TIM_TimeBaseStructure.TIM_Prescaler =7199; 

             TIM_TimeBaseStructure.TIM_ClockDivision =   TIM_CKD_DIV1; T

             IM_TimeBaseStructure.TIM_CounterMode =   TIM_CounterMode_Up; 

             TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 

                       

         ·定时器使能函数:

             void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)

         ·定时器中断使能函数:

             void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);

         ·状态标志位获取和清除

             FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);

                         void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG);

                         ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT);

                         void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT);


8、定时器中断实现步骤

     ①使能定时器时钟

        RCC_APB1PeriphClockCmd();

     ②初始化定时器,配置ARR,PSC

        TIM_TimeBaseInit();

     ③开启定时器中断,配置NVIC

        void TIM_ITConfig();

        NVIC_Init();

     ④使能定时器:

        TIM_Cmd();

     ⑤编写中断服务函数

        TIMx_IRQHandler();


9、程序要求

    通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反(闪烁)。

      Tout(溢出事件) = (ARR+1)(PSC+1)/Tclk


关键字:STM32  定时器  中断实验  TIM3 引用地址:STM32定时器中断实验-TIM3

上一篇:STM32 PWM输出函数
下一篇:通用定时器基本原理

推荐阅读最新更新时间:2024-03-16 16:24

STM32开发笔记83: SX1268驱动程序设计(芯片复位)
单片机型号:STM32L053R8T6 本系列开发日志,将详述SX1268驱动程序的整个设计过程,本篇介绍芯片复位驱动程序。 一、数据手册 1、NRESET是芯片第15引脚,低有效。 2、通过15引脚NREST,可以达到完整的芯片复位。复位后,会执行标准的校准程序,先前的内容将丢失。复位最短时间为50us,给100us较为合适。 3、这张图是芯片各个模式的引脚的状态表,可以看到除复位模式外,其余模式NREST引脚的状态都为IN PU,其意思是输入上拉,其上拉值为50K。 二、程序 1、由于其内部上来,我们可以给出低功耗的程序,不将单片机控制NREST的引脚设置为输出,而设置为analog引脚,程序如下: c
[单片机]
<font color='red'>STM32</font>开发笔记83: SX1268驱动程序设计(芯片复位)
STM32系列里RTC的亚秒特性及功能(上)
绝大多数STM32系列里的RTC都具有亚秒【或称子秒】计数单元。为了了解亚秒特性及功能,不妨先看RTC的功能框图。本文中的有关截图若无特别说明均来自STM32L4系列参考手册。 RTC的时钟源【RTCCLK】可以是LSE、LSI或者HSE/32,由RTCCLK最终变成日历的秒脉冲驱动信号经过了2次分频。先经过上图中A处的异步分频单元,默认分频系数是128,形成ck_apre时钟,默认情况下该时钟频率为256Hz;然后该时钟脉冲来到图中B处的同步分频单元,默认分频系数为256,最终形成1Hz的秒脉冲【ck_spre】到日历单元。关于两分频单元分频系数的配置,通过对RTC_PRER寄存器的相关位编程实现。 其中异步分频系数配
[单片机]
<font color='red'>STM32</font>系列里RTC的亚秒特性及功能(上)
【菜鸟入门】stm32 之 DAC
DAC可谓是stm32继按键最简单的一个寄存器配置吧,花了半个小时搞定! DAC主要特征 ● 2个DAC转换器:每个转换器对应1个输出通道 ● 8位或者12位单调输出 ● 12位模式下数据左对齐或者右对齐 ● 同步更新功能 ● 噪声波形生成 ● 三角波形生成 ● 双DAC通道同时或者分别转换 ● 每个通道都有DMA功能 ● 外部触发转换 看了这些东西,貌似很激动的样子,我们下面就开始配置DAC外设了 先直接看看寄存器: 位12 DMAEN1:DAC通道1 DMA使能(DAC channel1 DMA enable 该位由软件设置和清除。 0:关闭DAC通道1 DMA模式; 1:使能DAC通道1 DMA模式。 MAM
[单片机]
【菜鸟入门】<font color='red'>stm32</font> 之 DAC
安全启动 - STM32安全启动架构
安全需要一个起点。 现在我们理解,没有安全启动,设备平台的安全难以得到保证。安全启动要求启动的位置一定是固定在某个地方。那么固定启动位置靠什么保证? 必须靠硬件 。软件本身的特点,决定了它很容易被修改,即使做了加密和加扰,破解的难度依然比硬件低很多。所以,安全启动一定是靠 STM32 硬件来保证。 脱离硬件谈安全启动基本上是不可能的 。 实现 Root of Trust(信任根)通用的做法是什么呢?一般是, 芯片有一个 Bootrom 启动只读存储区 。硬件的设计保证,芯片加电启动一定是从这个只读的甚至不可见的 Bootrom 里执行。 事实上,保持安全启动的原则不变,但是实现的方式可以不一样。 对于这个 Bootrom,
[单片机]
STM32学习笔记:【001】时钟树与RCC
导言 如果学过单片机的同学应该不会陌生,学习51单片机时最经常听到的就是“最小系统”。 最小系统里面少不了晶振,否则单片机无法工作。 单片机需要晶振(时钟源)来工作,那么对于STM32芯片同样如此。 此外,同一个电路,时钟越快功耗越大,抗电磁干扰能力也随之变弱。 所以对于较为复杂的MCU一般都是采取多时钟源的方法来解决这些问题。 STM32的时钟树与时钟源 时钟源 在STM32F4中,有5个最重要的时钟源,按来源分为内外部两种;按速率也可以分为高低速两种。 时钟源 含义 时钟速率 用途 HSI 高速内部时钟 16MHz 可以直接作为系统时钟或者PLL输入 HSE 高速外部时钟 4~26MHz 可以直接作为系统时钟 L
[单片机]
<font color='red'>STM32</font>学习笔记:【001】时钟树与RCC
基于VxWorks下的多重定时器设计
VxWorks是一种嵌入式实时操作系统(RTOS),具有内核小、可裁剪、实时性强等特点。VxWorks内核(Wind)提供了共享内存、信号量、消息队列、套接字通信和定时器等多种机制。为了实现基于UDP网络的可靠通信,本文利用VxWorks的多种任务间通信机制和看门狗定时器机制,设计了一种多重定时器模型,该模型可以确保数据包的可靠传递。 1 VxWOrks的时钟及定时器机制 1.1 VxWorks延时函数 VxWorks既提供了延时功能,也提供了时限约束功能。VxWorks系统有2种延时方式:一种是Wind内核提供的taskDelay()函数;另一种是POSIX函数nanosleep()。 taskDelay()函数以
[工业控制]
基于VxWorks下的多重<font color='red'>定时器</font>设计
一个高效的定时器分析及设计
对于一个游戏而言,定时器是必须的,而它一般作为一个游戏基本公共组件,而定时器在游戏逻辑中运用是非常明显的(比如吃药回血,每几秒回血多少),而对于游戏逻辑而言需要开发一个高效率高精度(毫秒级别)的定时器。 一:分析Ace库定时器实现方式 1.Ace种定时器实现有4种,这里不具体介绍实现细节,主要介绍实现数据结构,性能。 具体的4种定时器都是从ACE_Timer_Queue_T继承,每种定时器用不同的数据结构来实现具体Timer的算法。 1)ACE_Timer_Heap定时器,根据触发时间建立一个优先级队列(一个最小堆数据结构)来维护所有的定时器,代价就是删除和插入过程为O(logn),代价比较高。 2)ACE_Timer_List定
[电源管理]
STM32的ADC的采样周期确定
  采样频率的确定   1.首先确定ADC 的时钟,这里需要看你的RCC的设置。在采用固件库的基础上,设定ADC的采样频率相对来说是很容易的。   (1)由时钟控制器提供的ADCCLK 时钟和PCLK2(APB2 时钟)同步。CLK 控制器为ADC 时钟提供一个专用的可编程预分频器。   (2) 一般情况下在程序 中将 PCLK2 时钟设为 与系统时钟 相同   RCC_HCLKConfig(RCC_SYSCLK_Div1);   RCC_PCLK2Config(RCC_HCLK_Div1);   RCC_PCLK1Config(RCC_HCLK_Div2);   (3)采样时间和转换时间   ADC 使用若干个ADC_CLK 周
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved