基于STM32的嵌入式系统原理与应用-第8章 定时器原理及应用_第1页
基于STM32的嵌入式系统原理与应用-第8章 定时器原理及应用_第2页
基于STM32的嵌入式系统原理与应用-第8章 定时器原理及应用_第3页
基于STM32的嵌入式系统原理与应用-第8章 定时器原理及应用_第4页
基于STM32的嵌入式系统原理与应用-第8章 定时器原理及应用_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章定时器原理及应用基于STM32的嵌入式系统原理与应用ONTENTS目录C01时钟树系统02定时器分类03基本定时器原理及应用04通用定时器原理及应用05高级定时器原理及应用01时钟树系统TransitionPageTitle8.1时钟树系统1.STM32有5个时钟源:HSI、HSE、LSI、LSE、PLL。

①、HSI是高速内部时钟,RC振荡器,频率为16MHz,精度不高。可以直接作为系统

时钟或者用作PLL时钟输入。

②、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时

钟源,频率范围为4MHz~26MHz。

③、LSI是低速内部时钟,RC振荡器,频率为32kHz,提供低功耗时钟。主要供独立看

门狗和自动唤醒单元使用。

④、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。RTC

⑤、PLL为锁相环倍频输出。STM32F4有两个PLL:主PLL(PLL)由HSE或者HSI提供时钟信号,并具有两个不同的输出时钟。第一个输出PLLP用于生成高速的系统时钟(最高168MHz)第二个输出PLLQ用于生成USBOTGFS的时钟(48MHz),随机数发生器的时钟和SDIO时钟。专用PLL(PLLI2S)用于生成精确时钟,从而在I2S接口实现高品质音频性能。2.系统时钟SYSCLK可来源于三个时钟源:

①、HSI振荡器时钟

②、HSE振荡器时钟

③、PLL时钟028.2定时器分类TransitionPageTitle8.2定时器分类定时器种类高级定时器(TIM1,TIM8)通用定时器(TIM2,TIM5)通用定时器(TIM3,TIM4)通用定时器(TIM9~TIM14)基本定时器(TIM6,TIM7)位数1632161616计数器模式向上,向下,向上/下向上,向下,向上/下向上,向下,向上/下向上向上,向下,向上/下产生DMA请求可以可以可以没有可以捕获/比较通道44420互补输出有无无无无特殊应用场景带可编程死区的互补输出通用。定时计数,PWM输出,输入捕获,输出比较通用。定时计数,PWM输出,输入捕获,输出比较通用。定时计数,PWM输出,输入捕获,输出比较主要应用于驱动DAC038.3基本定时器原理及应用TransitionPageTitle时钟源定时器要实现计数必须有个时钟源,基本定时器时钟只能来自内部时钟,并且预分频器的时钟来源就是CK_INT。23控制器定时器控制器控制实现定时器功能,控制定时器复位、使能、计数是其基础功能,基本定时器还专门用于DAC转换触发。时基单元时基单元包括:计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)和自动重载寄存器(TIMx_ARR)。定时时间的计算Tout=((arr+1)*(psc+1))/Tclk8.3.1基本定时器功能框图计数器寄存器(TIMx_CNT)计数器TIMx_CNT是一个16位的计数器,只能往上计数,最大计数值为65535。计数器从0计数到自动重载值(ARR寄存器的内容),然后重新从0开始计数并生成计数器上溢事件。预分频器寄存器(TIMx_PSC)自动重载寄存器(TIMx_ARR)TIMx_PSC是一个16位的预分频器,可以通过定时器时钟TIMxCLK对1~65536的任何一个数进行分频。自动重载寄存器TIMx_ARR是一个16位的寄存器,装着计数器能计数的最大数值,当计数到这个值时,如果使能了中断的话,定时器就产生溢出中断。时基单元时基单元计数器当前值寄存器CNT8.3.2基本定时器常用寄存器预分频寄存器TIMx_PSC8.3.2基本定时器常用寄存器自动重装载寄存器(TIMx_ARR)8.3.2基本定时器常用寄存器控制寄存器1(TIMx_CR1)8.3.2基本定时器常用寄存器DMA中断使能寄存器(TIMx_DIER)8.3.2基本定时器常用寄存器8.3.2基本定时器常用寄存器配置步骤任务要求编程实现,用定时器TIM6/7定时0.5s,每隔0.5sPF10端口LED灯闪烁一次。能定时器时钟。RCC_APB1PeriphClockCmd();②

初始化定时器,配置ARR,PSC。TIM_TimeBaseInit();③

开启定时器中断,配置NVIC。NVIC_Init();④

使能定时器。TIM_Cmd();⑥

编写中断服务函数。TIMx_IRQHandler();048.4通用定时器原理及应用TransitionPageTitle8.4.1通用定时器框图STM3

F4的通用

TIMx

(TIM2、TIM3、TIM4

TIM5)定时器功能特点包括:16

/32位向上、向下、向上/向下(中心对齐)计数模式,自动装载计数器(TIMx_CNT)。16

位可编程(可以实时修改)预分频器(TIMx_PSC),计数器时钟频率的分频系数为

1~65535

之间的任意数值。4

个独立通道(TIMx_CH1~4),这些通道可以用来作为:

输入捕获

输出比较

PWM

生成(边缘或中间对齐模式)

单脉冲模式输出

可使用外部信号(TIMx_ETR)控制定时器和定时器互连(可以用

1

个定时器控制另外一个定时器)的同步电路。8.4.1通用定时器框图如下事件发生时产生中断/DMA(6个独立的IRQ/DMA请求生成器):

更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发)

触发事件(计数器启动、停止、初始化或者由内部/外部触发计数)

输入捕获

输出比较

支持针对定位的增量(正交)编码器和霍尔传感器电路

触发输入作为外部时钟或者按周期的电流管理STM32

的通用定时器可以被用于:测量输入信号的脉冲长度(输入捕获)或者产生输出波形(输出比较和

PWM)等。

使用定时器预分频器和

RCC

时钟控制器预分频器,脉冲长度和波形周期可以在几个微秒到几个毫秒间调整。STM32

的每个通用定时器都是完全独立的,没有互相共享的任何资源。8.4.2通用定时器寄存器描述计数器当前值寄存器CNT8.4.2通用定时器寄存器描述预分频寄存器TIMx_PSC8.4.2通用定时器寄存器描述自动重装载寄存器(TIMx_ARR)8.4.2通用定时器寄存器描述控制寄存器1(TIMx_CR1)8.4.2通用定时器寄存器描述DMA中断使能寄存器(TIMx_DIER)8.4.3通用定时器PWM输出案例STM32PWM工作过程voidTIM_OCxInit(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct);typedef

struct{uint16_tTIM_OCMode;//PWM模式1或者模式2uint16_tTIM_OutputState;//输出使能OR失能uint16_tTIM_OutputNState;uint16_tTIM_Pulse;//比较值,写CCRxuint16_tTIM_OCPolarity;//比较输出极性uint16_tTIM_OCNPolarity;uint16_tTIM_OCIdleState;uint16_tTIM_OCNIdleState;}TIM_OCInitTypeDef;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM2;//PWM模式2TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;//比较输出使能TIM_OCInitStructure.

TIM_Pulse=100;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//输出极性:TIM输出比较极性高TIM_OC2Init(TIM3,&TIM_OCInitStructure);//根据T指定的参数初始化外设TIM3OC2PWM输出库函数设置比较值函数:voidTIM_SetCompareX(TIM_TypeDef*TIMx,uint16_tComparex);使能输出比较预装载:使能自动重装载的预装载寄存器允许位:voidTIM_OCxPreloadConfig(TIM_TypeDef*TIMx,uint16_tTIM_OCPreload);voidTIM_ARRPreloadConfig(TIM_TypeDef*TIMx,FunctionalStateNewState);PWM输出库函数8.4.4通用定时器PWM输出案例

使用定时器14的PWM功能,输出占空比可变的PWM波,用来驱动LED灯,从而达到LED【PF9]亮度由暗变亮,又从亮变暗,如此循环。任务要求

使能定时器14和相关IO口时钟。

使能定时器14时钟:RCC_APB1PeriphClockCmd();

使能GPIOF时钟:RCC_AHB1PeriphClockCmd();②

初始化IO口为复用功能输出。函数:GPIO_Init();

GPIO_InitStructure.GPIO_Mode

=GPIO_Mode_AF;//复用功能GPIOF9复用映射到定时器14

GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14); ④

初始化定时器:ARR,PSC等:TIM_TimeBaseInit();⑤

初始化输出比较参数:TIM_OC1Init();⑥使能预装载寄存器:TIM_OC1PreloadConfig(TIM14,TIM_OCPreload_Enable);使能自动重装载的预装载寄存器允许位TIM_ARRPreloadConfig(TIM14,ENABLE);使能定时器。不断改变比较值CCRx,达到不同的占空比效果:TIM_SetCompare1();PWM输出配置步骤:8.4.4通用定时器输入捕获案例输入捕获脉宽测量原理输入捕获库函数输入捕获通道初始化函数:voidTIM_ICInit(TIM_TypeDef*TIMx,TIM_ICInitTypeDef*TIM_ICInitStruct);typedef

struct{uint16_tTIM_Channel;//捕获通道1-4uint16_tTIM_ICPolarity;//捕获极性uint16_tTIM_ICSelection;//映射关系uint16_tTIM_ICPrescaler;//分频系数uint16_tTIM_ICFilter;//滤波器}TIM_ICInitTypeDef;TIM5_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM5_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM5_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM5_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM5_ICInitStructure.TIM_ICFilter=0x00;TIM_ICInit(TIM5,&TIM5_ICInitStructure);输入捕获库函数通道极性设置独立函数:voidTIM_OCxPolarityConfig(TIM_TypeDef*TIMx,uint16_tTIM_OCPolarity);获取通道捕获值uint32_tTIM_GetCapture1(TIM_TypeDef*TIMx);8.4.4通用定时器输入捕获案例①初始化定时器和通道对应IO的时钟。②初始化IO口,模式为复用:GPIO_Init();

GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;③设置引脚复用映射:GPIO_PinAFConfig();④初始化定时器ARR,PSCTIM_TimeBaseInit();⑤初始化输入捕获通道

TIM_ICInit();⑥如果要开启捕获中断,

TIM_ITConfig();NVIC_Init();⑦使能定时器:TIM_Cmd();⑧编写中断服务函数:TIMx_IRQHandler();配置步骤任务要求测量信号的脉冲宽度058.5高级定时器原理及应用TransitionPageTitle8.5.1高级定时器功能框图8.5.2断路和死区结构体typedefstruct{uint16_tTIM_OSSRState;uint16_tTIM_OSSIState;uint16_tTIM_LOCKLevel;uint16_tTIM_DeadTime;uint16_tTIM_Break;uint16_tTIM_BreakPolarity;uint16_tTIM_AutomaticOutput;}TIM_BDTRInitTypeDef;(1)TIM_OSSRState:运行模式下的关闭状态选择,它设定BDTR寄存器OSSR位的值。(2)TIM_OSSIState:空闲模式下的关闭状态选择,它设定BDTR寄存器OSSI位的值。(3)TIM_LOCKLevel:锁定级别配置,BDTR寄存器LOCK[1:0]位的值。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论