STM32F10XX通用定时器应用指南.doc
《STM32F10XX通用定时器应用指南.doc》由会员分享,可在线阅读,更多相关《STM32F10XX通用定时器应用指南.doc(62页珍藏版)》请在三一办公上搜索。
1、STM32F10XX通用定时器应用指南湖北文理学院 阮海蓉在STM32微处理器中,定时器是使用频率最高、用途最广、变化组合最灵活的部件,初学者往往不得要领。本文提纲携领,帮助初学者入门。介绍中以通用定时器为基本对象,高级定时器和基本定时器是在通用定时器的基础上增减了几种功能,在弄懂通用定时器以后就不难理解了。固件库升级到STM32F10x_StdPeriph_Lib_,定时器部分与使用手册UM0427有了较大改变,本文做了修订。通用定时器(TIM25)图1:通用定时器框图图2:主从定时器实例1. 每个通用定时器(TIM25)的主要组成部件:一个16位的预分频器(图1中的PSC),对输入的计数脉
2、冲进行预分频;一个16位的计数器(图1中的CNT),计数器可以按给定数值向上计数、向下计数、中央对齐(循环向上向下计数)方式工作;一个主模式控制器(在图2中),用于输出信号(图1及图2中的TRGO)到另一个定时器(也可以是其他部件),供其作为时钟源或触发源使用;一个从模式控制器(在图1和图2中),用于选择时钟源和触发源;四个捕获/比较控制器(图1中),用于纪录某一输入事件发生时的计数器当前值或用于在计数器到达某一预定数值时使输出发生变化。2. 预分频器PSC在被使用时其值会自动加上1,即其值为0时不分频,为1时2分频。3. 时钟源:内部时钟(来自APB1),SMS2:0=000,ECE=0;外
3、部引脚ETR(外部时钟模式2,滤波分频后的指定边沿),ECE=1;由从模式控制器提供的3种可1的编码器模式(共3种);由从模式控制器提供的TRGI源(即外部时钟模式1)。4. 使用内部时钟且APB1分频系数不为1时,定时器时钟=(AHP频率/APB1分频系数)2。5. TRGI源:外部触发ETR(外部时钟模式1,滤波分频后的指定边沿);TRC源(见图1);TI1FP1(来自于输入TI1经滤波和边沿检测)TI2FP2(来自于输入TI2经滤波和边沿检测)。6. TRC源:来自另一定时器主模式控制器的输出ITR0ITR3(各定时器定义不同);来自外部输入TI1(本定时器的CH1或者CH1、CH2和C
4、H3的异或)的跳变边沿(上升沿+下降沿)TI1F_ED。7. 计数器影子寄存器:放置计数器向上计数时溢出值、向下计数时重装值的寄存器。8. 更新:重置预分频寄存器和计数器的影子寄存器。9. 复位:重置预分频寄存器和计数器影子寄存器,清除现存分频值,计数器从0或溢出值开始计数。复位会产生更新事件,更新事件并不会产生复位。10. 触发:计数器启动、停止、初始化。11. 更新事件可由计数器上溢/下溢、设置UG位和从模式控制器发出的复位产生,可以被UDIS=0关闭。12. 计数器可设定为发生更新时不停止和停止(单脉冲模式)。13. 写入自动重装载寄存器TIMx_ARR,可以选择立即更新到计数器影子寄存
5、器(ARPE=0)或暂不更新(ARPE=1)。14. 写入预分频寄存器TIMx_PSC后,要在发生更新后才能装载到影子寄存器中。15. 设置UDIS=1可以禁止更新事件,但是设置UG位以及从模式控制器发出的复位可以使计数器和预分频器被重新初始化。16. 主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以下事件中的一个作为输出:本定时器复位(设置UG或由TRGI引起);本定时器使能(CEN=1或从模式控制器的触发);本定时器更新;捕获/比较通道1上一次成功的输入捕获/输出匹配(CC1IF);指定通道1通道4中的一个,其输出有效(OC1REFOC4REF)。17. 从模式控制器可以将输
6、入作为本定时器的时钟源或控制源,控制方式有:关闭从模式,即TRGI无效;编码器模式1,根据TI1FP1的电平,计数器在TI2FP2的边沿向上/向下计数;编码器模式2,根据TI2FP2的电平,计数器在TI1FP1的边沿向上/向下计数;编码器模式3,根据另一信号的电平,计数器在TI1FP1和TI2FP2的边沿向上/向下计数;复位,在TRGI的上升沿重新初始化计数器并产生更新信号;门控,TRGI高电平时计数,TRGI低电平时停止计数;触发,TRGI高电平时开始计数(若已在计数中则无影响);外部时钟模式1:以TRGI作为计数脉冲,在TRGI的上升沿计数。18. 以上从模式控制器的8种状态,为无效,为提
7、供时钟源,为提供控制源。19. 输入捕获的触发源:本通道的输入(TIx映射到通道x);相邻通道的输入(通道1、2为一组通道3、4为另一组);TRC源。20. 使用TRC作为触发源时,时钟源只能是内部时钟或外部时钟模式2的ETRF。21. 输入捕获工作方式:触发源有效时,将计数器CNT的值复制到本通道的捕获/比较寄存器,并产生CCxIF标志请求中断和DMA。22. 在输入捕获模式下将同一个输入以相反的有效沿作用到两个相邻通道(限通道1和通道2),并对计数器复位,可实现PWM输入模式,这种模式用于测量输入波形的占空比。23. ETR、TI1TI4均配有边沿检测器和数字滤波器,边沿检测器可以设置为上
8、升沿/下降沿,数字滤波器可以频率fCK_INT或fDTS/n连续采样N次后判定其状态,fDTS可设为时钟fCK_INT或fCK_INT/2、fCK_INT/4。24. 外部触发ETR配有预分频器(1、2、4、8)。25. TRGI上的事件对本定时器的作用可以选择被延迟,以使本定时器与主模式控制器驱动的从定时器完美同步。26. 输出比较工作方式:在该通道的捕获/比较寄存器中预存一个值,当计数器CNT的数值与捕获/比较寄存器的值相符时,设置或改变匹配输出OCxREF的状态,并产生CCxIF标志请求中断和DMA。27. 输出比较的工作模式:冻结,不起作用;匹配时输出有效(高)电平;匹配时输出无效(低
9、)电平;匹配时翻转输出电平;强制输出无效(低)电平;强制输出有效(高)电平;PWM模式1,计数器寄存器时输出有效(高)电平,反之输出无效(低)电平;PWM模式2,计数器寄存器时输出无效(低)电平,反之输出有效(高)电平。28. 以上8种输出比较的工作模式中,用于匹配有效的有,用于独立操控的有。29. 输出比较的匹配输出可设置为受ETRF控制:输出与ETRF无关;输出被ETRF高电平清0。30. 使用OCxPE可以设置在写入4个通道寄存器时:禁止预装载,即写入值立即启用生效(OcxPE=0);开启预装载,即写入值在下一次更新事件到来时启用(OcxPE=1)。31. 输出信号可被同极性或反极性传送
10、至指定引脚CH1CH4。32. 输出比较在中央对齐模式下,通道的中断标志可选择:仅向上计数时被设置;仅向下计数时被设置;向上和向下计数时均设置。33. 定时器的中断和DMA可由以下事件引起:计数器被触发;计数器上溢/下溢、设置UG位和从模式控制器产生的更新,其中后2种可以被关闭;通道1通道4发生捕获/匹配。34. 定时器共有6个事件:触发TRGI有效、更新和4个捕获/比较通道匹配。事件可作为DMA和中断的源。事件可设置事件产生寄存器TIMx_EGR中各标志的方法模拟产生。高级定时器(TIM18)图3:高级定时器框图1. TIM1和TIM8的内部时钟来自APB2。2. TIM8使用内部时钟且AP
11、B2分频系数不为1时,定时器时钟=(AHB频率/APB2分频系数)2。3. 高级定时器有重复次数计数器。启用重复次数计数器后,只有当溢出达到预定的重复次数后才会发生更新。但软件以及从模式控制器产生的更新事件仍会立即更新。BBBB4. 重复次数计数器RCR的值在被使用时会自动加1。其值为0时重复1次,为1时重复2次。5. 输出增加CH1N、CH2N、CH3N作为CH1、CH2、CH3的互补输出。6. CCxE=CCxNE=1时启用互补输出,此时OCx和OCxN的极性由CCxP和CCxNP决定。当CCxP和CCxNP相同时,OCx和OCxN的有效电平是相反的,以保证推挽功率管不会同时导通。7. 若
12、启用了互补输出,则UTG对应设定一个死区时间。OCx和OCxN将延迟至死区时间后有效,以避开推挽功率管的关断时间,确保2个推挽功率管关断在前,开通在后,不至发生短路环流。8. COM:控制更新事件,若CCPC=1,则COM事件启动CCxE、CCNxE、OCxM更新。CCUS=0由写入COMG产生,CCUS=1时由写入COMG位或TRGI产生。COM事件可以用来产生六步PWM输出。9. 运行模式(MOE=1)。OSSR=1:若CcxE=CcxNE=1,OCx和OCxN对应输出PWM波形;若CcxE、CcxNE中一个为1, CcxE、CcxNE中为1的OCx和OCxN输出PWM波形,为0的OCx=
13、CCxP、OCxN=CCxNP;CcxE=CcxNE=0:则使OCx=CCxP、OCxN=CCxNP,同时OCx和OCxN与定时器断开。OSSR=0:若CcxE=CcxNE=1,OCx和OCxN对应输出PWM波形;若CCxE、CCxNE中一个为1,OCx和OCxN中CcxE、CcxNE为1的输出PWM波形,为0的OCx=0、OCxN=0,同时OCx和OCxN与定时器断开;CcxE=CcxNE=0:则OCx=0、OCxN=0,同时OCx和OCxN与定时器断开。10. 由运行模式(MOE=1)变为空闲模式(MOE=0)。OSSI=1:输出OCx=CCxP、OCxN=CCxNP,经过一个死区时间后,
14、OCx=OISx,OCxN=OISxN。OSSI=0:输出OCx=CCxP、OCxN=CCxNP,经过一个死区时间后,OCx=OISx,OCxN=OISxN,同时OCx和OCxN与定时器断开。基本定时器(TIM67)1. 基本定时器只能使用内部时钟,只有更新事件。 2. 基本定时器只有向上计数方式。3. 主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以下事件中的一个作为输出:本定时器复位(设置UG或由TRGI引起);本定时器使能(CEN=1或从模式控制器的触发);本定时器更新。TIM库函数序号函数名描述TIMx1TIM_DeInit将外设 TIMx 寄存器重设为缺省值1172TI
15、M_TimeBaseInit根据 指定的参数初始化 TIMx 的时间基数单位1173TIM_OC1Init根据 指定的参数初始化 TIMx 通道 1为输出比较模式15、8174TIM_OC2Init根据 指定的参数初始化 TIMx 通道 2为输出比较模式15、8、9、12、155TIM_OC3Init根据 指定的参数初始化 TIMx 通道 3为输出比较模式15、86TIM_OC4Init根据 指定的参数初始化 TIMx 通道 4为输出比较模式15、87TIM_ICInit根据 指定的参数初始化外设 TIMx为输入捕获模式15、8178TIM_PWMIConfig根据 指定的参数设置外设 TIM
16、x 工作在 PWM 输入模式,仅能使用通道1和通道215、8、9、12、159TIM_BDTRConfig设置刹车特性,死区时间,锁电平,OSSI,OSSR 状态和 AOE(自动输出使能)1、810TIM_TimeBaseStructInit把 TIM_TimeBaseInitStruct 中的每一个参数按缺省值填入11TIM_OCStructInit把 TIM_OCInitStruct 中的每一个参数按缺省值填入12TIM_ICStructInit把 TIM_ICInitStruct 中的每一个参数按缺省值填入13TIM_BDTRStructInit把 TIM_BDTRInitStruct
17、中的每一个参数按缺省值填入14TIM_Cmd使能或者失能 TIMx 外设(写CR_CEN)11715TIM_CtrlPWMOutputs使能或者失能 TIMx 外设的主输出(写BDTR_MOE)1、8、151716TIM _ITConfig使能或者失能指定的 TIM 中断(写DIER)11717TIM_GenerateEvent设置 TIMx 事件由软件产生(写EGR)11718TIM_DMAConfig设置 TIMx 的 DMA 接口(写DCR)15、8、151719TIM_DMACmd使能或者失能指定的 TIMx 的 DMA 请求(写DIER)15、8、151720TIM_Internal
18、ClockConfig关闭从模式,使用内部时钟(SMCR_SMS=000)15、8、9、12、1521TIM_ITRxExternalClockConfig设置 TIMx从模式使用外部时钟(ITR0ITR3)15、9、12、1522TIM_TIxExternalClockConfig设置 TIMx 从模式使用外部时钟(TI1FED 、TI1FP1、TI2FP2)15、9、12、1523TIM_ETRClockMode1Config配置 TIMx 从模式使用外部时钟模式 1(ETRF)15、824TIM_ETRClockMode2Config配置 TIMx 使用外部时钟模式 2(ETRF)15、
19、825TIM_ETRConfig配置 TIMx 外部触发ETR参数(预分频、时钟极性、滤波器)15、826TIM_PrescalerConfig设置 TIMx 预分频+立即装载/等待更新(写PSC和EGR_UG)11727TIM_CounterModeConfig设置 TIMx 计数器模式(写CR1_DIR和CR1_CMS)15、828TIM_SelectInputTrigger选择 TIMx 输入触发源(ITR0ITR3、TI1FED 、TI1FP1、TI2FP2、ETRF)15、8、9、12、1529TIM_EncoderInterfaceConfig设置 TIMx从模式使用编码器功能15
20、、830TIM_ForcedOC1Config置 TIMx 输出 1 为活动或者非活动电平(强制OC1REF为0或1)15、81731TIM_ForcedOC2Config置 TIMx 输出 2 为活动或者非活动电平(强制OC2REF为0或1)15、8、9、12、1532TIM_ForcedOC3Config置 TIMx 输出 3 为活动或者非活动电平(强制OC3REF为0或1)15、833TIM_ForcedOC4Config置 TIMx 输出 4 为活动或者非活动电平(强制OC4REF为0或1)15、834TIM_ARRPreloadConfig使能或者失能 TIMx 在 ARR 上的预装
21、载寄存器(等待更新/立即生效CR1_ARPE)11735TIM_SelectCOM选择 TIMx 外设的通讯事件(设置CR2_CCUS,仅对互补通道有效)1、8、151736TIM_SelectCCDMA选择 TIMx 外设的捕获比较 DMA 源(使能/失能CR2_CCDS)15、8、151737TIM_CCPreloadControl设置TIM x 的CC x E、CC xNE、OC xM预装载控制位(设置CR2_CCPC,仅对互补通道有效)15、8、1538TIM_OC1PreloadConfig使能或者失能 TIMx 在 CCR1 上的预装载(设置CCMR1_OC1PE)15、81739
22、TIM_OC2PreloadConfig使能或者失能 TIMx 在 CCR2 上的预装载(设置CCMR1_OC2PE)15、8、9、12、1540TIM_OC3PreloadConfig使能或者失能 TIMx 在 CCR3 上的预装载(设置CCMR2_OC3PE)15、841TIM_OC4PreloadConfig使能或者失能 TIMx 在 CCR4 上的预装载(设置CCMR2_OC4PE)15、842TIM_OC1FastConfig设置 TIMx 捕获比较 1 快速特征(设置CCMR1_OC1FE)15、81743TIM_OC2FastConfig设置 TIMx 捕获比较 2 快速特征(设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- STM32F10XX 通用 定时器 应用 指南
链接地址:https://www.31ppt.com/p-4117378.html