关闭

STM32初识——通用定时器配置(by woody)

标签: stm32
201人阅读 评论(0) 收藏 举报
通用定时器的益处时间
 Tout= ((arr+1)*(psc+1))/Tclk;


TIM3时钟使能
TIM3 是挂载在 APB1 之下,所以我们通过 APB1 总线下的时钟使能函数来使能 TIM3。调用的函数是:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能


初始化定时器参数,设置自动重装值,分频系数,计数方式。
在库函数中,定时器的初始化参数是通过初始化函数 TIM_TimeBaseInit 实现的:
voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct);
第一个参数是确定是哪个定时器,这个比较容易理解。第二个参数是定时器初始化参数结构体指针,结构体类型为 TIM_TimeBaseInitTypeDef
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_TimeBaseStructure.TIM_Period = 5000;//设置自动重载计数周期值
TIM_TimeBaseStructure.TIM_Prescaler =7199;//参数 TIM_Prescaler是用来设置分频系数的
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;//设置时钟分频因子
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//参数 TIM_CounterMode 是用来设置计数方式
TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);


设置TIM3_DIER允许更新中断。
因为我们要使用TIM3的更新中断,寄存器的相应位便可使能更新中断。在库函数里面定时器中断使能是通过 TIM_ITConfig 函数来实现的:
void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState NewState);
第一个参数是选择定时器号,这个容易理解,取值为 TIM1~TIM17。
第二个参数非常关键,是用来指明我们使能的定时器中断的类型,定时器中断的类型有很多种,包括更新中断TIM_IT_Update触发中断TIM_IT_Trigger以及输入捕获中断等等。
第三个参数就很简单了,就是失能还是使能。


TIM3中断优先级设置。
在定时器中断使能之后,因为要产生中断,必不可少的要设置 NVIC 相关寄存器,设置中
断优先级。


使能TIM3 。
光配置好定时器还不行,没有开启定时器,照样不能用。我们在配置完后要开启定时器,通过TIM3_CR1的CEN位来设置。在固件库里面使能定时器的函数是通过TIM_Cmd函数来实现的:
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)


编写中断服务函数。


读取中断状态寄存器的值判断中断类型的函数
ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t)
该函数的作用是,判断定时器TIMx的中断类型TIM_IT是否发生中断if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET){}


固件库中清除中断标志位的函数
void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
该函数的作用是,清除定时器 TIMx 的中断 TIM_IT 标志位。TIM_ClearITPendingBit(TIM3, TIM_IT_Update );

























0
0
查看评论

STM32的通用定时器的配置

STM32的通用定时器为:TIM2、TIM3、TIM4和TIM5       在使用通用定时器时利用库函数直接设置定时器如下: 1.  使能定时器TIM_X的时钟:(X=2、3、4、5)     &#...
  • jinxifengjieai
  • jinxifengjieai
  • 2014-03-13 19:26
  • 1472

stm32通用定时器配置

STM32的定时器是个强大的模块,定时器使用的频率也是很高的,定时器可以做一些基本的定时,还可以做PWM输出或者输入捕获功能。 时钟源问题: 名为TIMx的有八个,其中TIM1和TIM8挂在APB2总线上,而TIM2-TIM7则挂在 APB1总线上。其中TIM1&TIM8称...
  • Aniu127
  • Aniu127
  • 2014-10-08 15:57
  • 2204

STM32 通用定时器的一些概念解析

STM32一共有8个定时器,其中定TIM1和TIM8为高级控制定时器,除了具有通用定时器的功能外,还兼具控制功能,不仅能够输出PWM还可以采集编码器,驱动各种电机的功能。而基本定时器TIM6和TIM7一般不用作普通定时器,一般会给别的定时器提供基准时钟信号。 对于通用定时器TIM2~TIM5,基本...
  • u012351051
  • u012351051
  • 2016-05-24 17:17
  • 948

stm32 基本定时器最简单定时配置

stm32 定时器 配置
  • alfredseng
  • alfredseng
  • 2016-11-30 17:04
  • 2500

STM32_TIM定时-中断

今天讲解STM32F103定时器定时-中断功能,在昨天定时器延时的软件工程上添加TIM3定时的功能,自己也可以试着将昨天的工程添加修改得到。   今天的软件工程下载地址(360云盘): https://yunpan.cn/cPnJ9KYcXbPsP  访问密码 acd8 ...
  • ybhuangfugui
  • ybhuangfugui
  • 2016-05-05 17:40
  • 8198

STM32学习--定时器(通用定时器)1

通用定时器1. 组成结构1.1 组成模块  如图所示,通用定时器主要由计数部分、触发控制器、捕获/比较模块组成。计数部分的核心是计数器,受预分频器输出的信号(CK_CNT)驱动,实现向上、向下、对齐模式的自动装载计数。预分频器输入由触发控制器控制,可选内部时钟、外部触发输入、内部触发接口、外部输...
  • sworssman
  • sworssman
  • 2016-11-08 19:37
  • 551

STM32F103定时器详解

STM32F103系列的单片机一共有11个定时器,其中: 2个高级定时器 4个普通定时器 2个基本定时器 2个看门狗定时器 1个系统嘀嗒定时器 除去看门狗定时器和系统滴答定时器的八个定时器列表; 8个定时器分成3个组; TIM1和TIM8是高级定时器 ...
  • qq_31339221
  • qq_31339221
  • 2017-04-21 18:06
  • 596

STM32通用定时器原理

一 STM32通用定时器原理             通用定时器 是一个通过可编程预分频器驱动的16位自动装载计数器构成。它适用于多种场合,包括测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和P...
  • liujiejieliu1234
  • liujiejieliu1234
  • 2015-05-12 21:08
  • 1345

STM32F103的11个定时器详解

http://www.51hei.com/bbs/dpj-40311-1.html STM32F103系列的单片机一共有11个定时器,其中: 2个高级定时器 4个普通定时器 2个基本定时器 2个看门狗定时器 1个系统嘀嗒定时器 出去看门狗定时器和系统滴答定时器的八个定时器列表; ...
  • u014183377
  • u014183377
  • 2017-01-05 19:33
  • 1693

STM32通用定时器配置

本文主要介绍如何配置STM32的通用定时器,步骤较为详细,可直接拿去用或简单修改以适配。
  • u014449366
  • u014449366
  • 2016-10-01 22:10
  • 465
    个人资料
    • 访问:1420次
    • 积分:83
    • 等级:
    • 排名:千里之外
    • 原创:7篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档