STM32F10XX通用定时器应用指南_第1页
STM32F10XX通用定时器应用指南_第2页
STM32F10XX通用定时器应用指南_第3页
STM32F10XX通用定时器应用指南_第4页
STM32F10XX通用定时器应用指南_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 STM32F10XX通用定时器应用指南湖北文理学院阮海蓉在STM32微处理器中,定时器是使用频率最高、用途最广、变化组合最灵活的部件,初学者往往不得要领。本文提纲携领,帮助初学者入门。介绍中以通用定时器为基本对象,高级定时器和基本定时器是在通用定时器的基础上增减了几种功能,在弄懂通用定时器以后就不难理解了。固件库升级到STM32F10 x_StdPeriph_Lib_,定时器部分与使用手册UM0427有了较大改变,本文做了修订。通用定时器(TIM25)TIMbcEIREh7lMx_CHSOTlMxCH4-QmTRC-TI4TRC-和边沿檢雋當和边补楼隅崙至其它崔时牆呈OAC.ADCT14FP

2、3T14FP4T11FP1T11FP2冋丄fl旬下.i数I朋墮賞駆奇存肾PGCckcmTRCH713FF3J+CC3J17和边沿枚歸冷.T13FP4二極分須HiElt存昭IA诜比戕2路存握T12FP1T12FP2ETRFL晌HEF做出OC4j控制1图1:通用定时器框图图2:主从定时器实例每个通用定时器(TIM25)的主要组成部件:一个16位的预分频器(图1中的PSC),对输入的计数脉冲进行预分频;一个16位的计数器(图1中的CNT),计数器可以按给定数值向上计数、向下计数、中央对齐(循环向上向下计数)方式工作;一个主模式控制器(在图2中),用于输出信号(图1及图2中的TRGO)到另一个定时器(

3、也可以是其他部件),供其作为时钟源或触发源使用;一个从模式控制器(在图1和图2中),用于选择时钟源和触发源;四个捕获/比较控制器(图1中),用于纪录某一输入事件发生时的计数器当前值或用于在计数器到达某一预定数值时使输出发生变化。预分频器PSC在被使用时其值会自动加上1,即其值为0时不分频,为1时2分频。时钟源:内部时钟(来自APB1),SMS2:0=000,ECE=0;外部引脚ETR(外部时钟模式2,滤波分频后的指定边沿),ECE=1;由从模式控制器提供的3种可1的编码器模式(共3种);由从模式控制器提供的TRGI源(即外部时钟模式1)。使用内部时钟且APB1分频系数不为1时,定时器时钟=(A

4、HP频率/APB1分频系数)X2。TRGI源:外部触发ETR(外部时钟模式1,滤波分频后的指定边沿);TRC源(见图1);TI1FP1(来自于输入TI1经滤波和边沿检测)TI2FP2(来自于输入TI2经滤波和边沿检测)。TRC源:来自另一定时器主模式控制器的输出ITR0ITR3(各定时器定义不同);来自外部输入TI1(本定时器的CH1或者CH1、CH2和CH3的异或)的跳变边沿(上升沿+下降沿)TI1F_ED。计数器影子寄存器:放置计数器向上计数时溢出值、向下计数时重装值的寄存器。更新:重置预分频寄存器和计数器的影子寄存器。复位:重置预分频寄存器和计数器影子寄存器,清除现存分频值,计数器从0或

5、溢出值开始计数。复位会产生更新事件,更新事件并不会产生复位。触发:计数器启动、停止、初始化。更新事件可由计数器上溢/下溢、设置UG位和从模式控制器发出的复位产生,可以被UDIS=O关闭。计数器可设定为发生更新时不停止和停止(单脉冲模式)。写入自动重装载寄存器TIMx_ARR,可以选择立即更新到计数器影子寄存器(ARPE=0)或暂不更新(ARPE=1)。写入预分频寄存器TIMx_PSC后,要在发生更新后才能装载到影子寄存器中。设置UDIS=1可以禁止更新事件,但是设置UG位以及从模式控制器发出的复位可以使计数器和预分频器被重新初始化。主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以

6、下事件中的一个作为输出:本定时器复位(设置UG或由TRGI引起);本定时器使能(CEN=1或从模式控制器的触发);本定时器更新;捕获/比较通道1上一次成功的输入捕获/输出匹配(CC1IF);指定通道1通道4中的一个,其输出有效(OC1REF0C4REF)。从模式控制器可以将输入作为本定时器的时钟源或控制源,控制方式有:关闭从模式,即TRGI无效;编码器模式1,根据TI1FP1的电平,计数器在TI2FP2的边沿向上/向下计数;编码器模式2,根据TI2FP2的电平,计数器在TI1FP1的边沿向上/向下计数;编码器模式3,根据另一信号的电平,计数器在TI1FP1和TI2FP2的边沿向上/向下计数;复

7、位,在TRGI的上升沿重新初始化计数器并产生更新信号;门控,TRGI高电平时计数,TRGI低电平时停止计数;触发,TRGI高电平时开始计数(若已在计数中则无影响);外部时钟模式1:以TRGI作为计数脉冲,在TRGI的上升沿计数。以上从模式控制器的8种状态,为无效,为提供时钟源,为提供控制源。输入捕获的触发源:本通道的输入(TIx映射到通道x);相邻通道的输入(通道1、2为一组通道3、4为另一组);TRC源。使用TRC作为触发源时,时钟源只能是内部时钟或外部时钟模式2的ETRFo输入捕获工作方式:触发源有效时,将计数器CNT的值复制到本通道的捕获/比较寄存器,并产生CCxIF标志请求中断和DMA

8、。在输入捕获模式下将同一个输入以相反的有效沿作用到两个相邻通道(限通道1和通道2),并对计数器复位,可实现PWM输入模式,这种模式用于测量输入波形的占空比。ETR、TI1TI4均配有边沿检测器和数字滤波器,边沿检测器可以设置为上升沿/下降沿,数字滤波器可以频率fCKINT或fDTS/n连续采样N次后判定其状态,fDTS可设为时钟fCKINT或fCKINT/2、fCKINT/4。外部触发ETR配有预分频器(1、2、4、8)o25.TRGI上的事件对本定时器的作用可以选择被延迟,以使本定时器与主模式控制器驱动的从定时器完美同步。26输出比较工作方式:在该通道的捕勒比较寄存器中预存一个值,当计数器C

9、NT的数值与捕获/比较寄存器的值相符时,设置或改变匹配输出OCxREF的状态,并产生CCxIF标志请求中断和DMA。27输出比较的工作模式:冻结,不起作用;匹配时输出有效(高)电平;匹配时输出无效(低)电平;匹配时翻转输出电平;强制输出无效(低)电平;强制输出有效(高)电平;PWM模式1,计数器寄存器时输出有效(高)电平,反之输出无效(低)电平;WM模式2,计数器寄存器时输出无效(低)电平,反之输出有效(高)电平。28.以上8种输出比较的工作模式中,用于匹配有效的有,用于独立操控的有。29输出比较的匹配输出可设置为受ETRF控制:输出与ETRF无关;输出被ETRF高电平清0。30.使用OCxP

10、E可以设置在写入4个通道寄存器时:禁止预装载,即写入值立即启用生效(OcxPE=0);开启预装载,即写入值在下一次更新事件到来时启用(OcxPE=1)。31输出信号可被同极性或反极性传送至指定引脚CH1CH4。32输出比较在中央对齐模式下,通道的中断标志可选择:仅向上计数时被设置;仅向下计数时被设置;向上和向下计数时均设置。定时器的中断和DMA可由以下事件引起:计数器被触发;计数器上溢/下溢、设置UG位和从模式控制器产生的更新,其中后2种可以被关闭;通道1通道4发生捕获/匹配。定时器共有6个事件:触发TRGI有效、更新和4个捕获/比较通道匹配。事件可作为DMA和中断的源。事件可设置事件产生寄存

11、器TIMx_EGR中各标志的方法模拟产生。高级定时器(TIM18)图3:高级定时器框图1.TIM1和TIM8的内部时钟来自APB2。TIM8使用内部时钟且APB2分频系数不为1时,定时器时钟=(AHB频率/APB2分频系数)X2。高级定时器有重复次数计数器。启用重复次数计数器后,只有当溢出达到预定的重复次数后才会发生更新。但软件以及从模式控制器产生的更新事件仍会立即更新。BBBB重复次数计数器RCR的值在被使用时会自动加1。其值为0时重复1次,为1时重复2次。输出增加CHIN、CH2N、CH3N作为CH1、CH2、CH3的互补输出。CCxE=CCxNE=1时启用互补输出,此时OCx和OCxN的

12、极性由CCxP和CCxNP决定。当CCxP和CCxNP相同时,OCx和OCxN的有效电平是相反的,以保证推挽功率管不会同时导通。若启用了互补输出,则UTG对应设定一个死区时间。OCx和OCxN将延迟至死区时间后有效,以避开推挽功率管的关断时间,确保2个推挽功率管关断在前,开通在后,不至发生短路环流。COM:控制更新事件,若CCPC=1,贝9COM事件启动CCxE、CCNxE、OCxM更新。CCUS=0由写入COMG产生,CCUS=1时由写入COMG位或TRGI产生。COM事件可以用来产生六步PWM输出。运行模式(MOE=1)。OSSR=1:若CcxE=CcxNE=1,OCx和OCxN对应输出P

13、WM波形;若CcxE、CcxNE中一个为1,CcxE、CcxNE中为1的OCx和OCxN输出PWM波形,为0的OCx=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与定时器断开。由运行模式(MOE=

14、1)变为空闲模式(MOE=0)。OSSI=1:输出OCx=CCxP、OCxN=CCxNP,经过一个死区时间后,OCx=OISx,OCxN=OISxN。OSSI=0:输出OCx=CCxP、OCxN=CCxNP,经过一个死区时间后,OCx=OISx,OCxN=OISxN,同时OCx和OCxN与定时器断开。基本定时器(TIM67)基本定时器只能使用内部时钟,只有更新事件。基本定时器只有向上计数方式。主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以下事件中的一个作为输出:本定时器复位(设置UG或由TRGI引起);本定时器使能(CEN=1或从模式控制器的触发);本定时器更新。TIM库函数序

15、号函数名描述TIMx1TIMDelnit将外设TIMx寄存器重设为缺省值1172TIMTimeBaselnit根据指定的参数初始化TIMx的时间基数单位1173TIMOC1Init根据指定的参数初始化TIMx通道1为输出比较模式15、8174TIMOC2Init根据指定的参数初始化TIMx通道2为输出比较模式15、8、9、12、155TIMOC3Init根据指定的参数初始化TIMx通道3为输出比较模式15、86TIMOC4Init根据指定的参数初始化TIMx通道4为输出比较模式15、87TIMICInit根据指定的参数初始化外设TIMx为输入捕获模式15、8178TIMPWMIConfig根据

16、指定的参数设置外设TIMx工作在PWM输入模式,仅能使用通道1和通道215、8、9、12、159TIMBDTRConfig设置刹车特性,死区时间,锁电平,OSSI,OSSR状态和AOE(自动输出使能)1、810TIMTimeBaseStructInit把TIM_TimeBaseInitStruct中的母一个参数按缺省值填入11TIMOCStructInit把TIMOCInitStruct中的每一个参数按缺省值填入12TIMICStructInit把TIMICInitStruct中的每一个参数按缺省值填入13TIMBDTRStructInit把TIM_BDTRInitStruct中的每一个参数按

17、缺省值填入14TIMCmd使能或者失能TIMx外设(写CRCEN)11715TIMCtrlPWMQutputs使能或者失能TIMx外设的主输出(写BDTR_M0E)1、8、151716TIMITConfig使能或者失能指定的TIM中断(写DIER)11717TIMGenerateEvent设置TIMx事件由软件产生(写EGR)11718TIMDMAConfig设置TIMx的DMA接口(写DCR)15、8、151719TIMDMACmd使能或者失能指定的TIMx的DMA请求(写DIER)15、8、151720TIM_InternalClockConfig关闭从模式,使用内部时钟(SMCR_SMS

18、=000)15、8、9、12、1521TIM4ITRxExternalClockConfig设置TIMx从模式使用外部时钟(ITR0ITR3)15、9、12、1522TIMTIxExternalClockConfig设置TIMx从模式使用外部时钟(TI1FED、TI1FP1、TI2FP2)15、9、12、1523TIMETRClockMode1Config配置TIMx从模式使用外部时钟模式1(ETRF)15、824TIMETRClockMode2Config配置TIMx使用外部时钟模式2(ETRF)15、825TIMETRConfig配置TIMx外部触发ETR参数(预分频、时钟极性、滤波器)1

19、5、826TIM_PrescalerConfig设置TIMx预分频+立即装载/等待更新(写PSC和EGR_UG)11727TIM4CounterM4odeConfig设置TIMx计数器模式(写CR1_DIR和CR1_CMS)15、828TIMSelectlnpiitTrigger选择TIMx输入触发源(ITROITR3、TI1FED、TI1FP1、TI2FP2、ETRF)15、8、9、12、1529TIMEncoderlnterfaceConfig设置TIMx从模式使用编码器功能15、830TIMForcedOCIConfg置TIMx输出1为活动或者非活动电平(强制OC1REF为0或1)15、

20、81731TIMForcedOC2Config置TIMx输出2为活动或者非活动电平(强制OC2REF为0或1)15、8、9、12、1532TIMForcedOC3Confg置TIMx输出3为活动或者非活动电平(强制OC3REF为0或1)15、833TIMForcedOC4Config置TIMx输出4为活动或者非活动电平(强制OC4REF为0或1)15、834TIMARRPreloadConfig使能或者失能TIMx在ARR上的预装载寄存器(等待更新/立即生效CR1ARPE)11735TIMSelectCQM选择TIMx外设的通讯事件(设置CR2_CCUS,仅对互补通道有效)1、8、151736

21、TIMSelectCCDMA选择TIMx外设的捕获比较DMA源(使能/失能CR2_CCDS)15、8、151737TIMCCPreloadControl设置TIMx的CCxE、CCxNE、OCxM预装载控制位(设置CR2CCPC,仅对互补通道有效)15、8、1538TIMOCIPreloadCofg使能或者失能TIMx在CCR1上的预装载(设置CCMR1_OC1PE)15、81739TIMOC2PreloadConfig使能或者失能TIMx在CCR2上的预装载(设置CCMR1_OC2PE)15、8、9、12、1540TIMOC3PreloadConfigc使能或者失能TIMx在CCR3上的预装

22、载(设置CCMR2_0C3PE)15、841TIMOC4PreloadConfig使能或者失能TIMx在CCR4上的预装载(设置CCMR2_0C4PE)15、842TIMOCIFastConfig设置TIMx捕获比较1快速特征(设置CCMR1OC1FE)15、81743TIMOC2FastConfig设置TIMx捕获比较2快速特征(设置CCMR1_OC2FE)15、8、9、12、1544TIMOC3FastConfig设置TIMx捕获比较3快速特征(设置CCMR20C3FE)15、845TIMOC4FastConfig设置TIMx捕获比较4快速特征(设置CCMR2OC4FE)15、846TIM

23、ClearOCIRef在一个外部事件时清除或者保持OCREF1信号(设置CCMR1OC1CE)15、847TIMClearOC2Ref在一个外部事件时清除或者保持OCREF2信号(设置CCMR1OC2CE)15、848TIMClearOC3Ref在一个外部事件时清除或者保持OCREF3信号(设置CCMR20C3CE)15、849TIMClearOC4Ref在一个外部事件时清除或者保持OCREF4信号(设置CCMR20C4CE)15、850TIMOCIPolarityCofg设置TIMx通道1极性(设置CCER_CC1P)15、81751TIMOCINPolarityConfig设置TIMx通道

24、1N极性(设置CCER_CC1NP)1、8、151752TIMOC2PolarityCo设置TIMx通道2极性(设置CCERCC2P)15、8、9、nfig12、1553TIMOC2NPolarityConfig设置TIMx通道2N极性(设置CCER_CC2NP)1、815、854TIMOC3PolarityConfig设置TIMx通道3极性(设置CCER_CC3P)15、855TIMOC3NPolarityConfig设置TIMx通道3N极性(设置CCER_CC3NP)1、856TIMOC4PolarityConfig设置TIMx通道4极性(设置CCER_CC4P)15、857TIMCCxC

25、md使能或者失能TIMx捕获比较通道x(设置通道x的CCERCCxE)15、81758TIMCCxNCmd使能或者失能TIMx捕获比较通道xN(设置通道x的CCERCCxNE)1、8、151759TIMSelectOCxM选择TIMx输出比较模式(CCMRl/2_0cxM=000111)。本函数在改变输出比较模式前失能选中的通道。用户必须使用函数TIMCCxCmd和TIMCCxNCmd来使能这个通道。15、81760TIM4UpdateDisableConfig设置TIMx允许/禁止更新事件产生(设置CR1_UDIS)11761TIMUpdateRequestConfig设置TIMx的中断和D

26、MA更新请求源模式(设置CR1_URS)11762TIMSelectHallSensor使能或者失能TIMx霍尔传感器接口(设置CR2_TI1S)15、863TIM_SelectOnePulseMode设置TIMx单脉冲模式(设置CR1_0PM)11764TIMSelectOutputTrigger选择TIMx主模式控制器输出模式(复位、使能、更新、捕获/比较1、比较0C1REF、比较OC2REF、比较0C3REF、比较OC4REF)19、12、1565TIMSelectSlaveMode选择TIMx从模式控制器功能(复位、更新、触发、外部时钟模式1)15、8、9、12、1566TIMSele

27、ctMasterSlaveM打odey、丄,a.、设置或者重置TIMx主/从模式延迟(设置SMCRMSM)15、8、9、12、1567TIMSetCounter设置TIMx计数器寄存器值(写CNT)11768TIMSetAutoreload设置TIMx自动重装载寄存器值(写ARR)11769TIMSetComparel设置TIMx捕获比较1寄存器值(写CCR1)15、81770TIM_SetCompare2设置TIMx捕获比较2寄存器值(写CCR2)15、8、9、12、1571TIMSetCompare3设置TIMx捕获比较3寄存器值(写CCR3)15、872TIMSetCompare4设置T

28、IMx捕获比较4寄存器值(写CCR4)15、873TIMSetIC1Prescaler设置TIMx输入捕获1预分频(写CCMR1_IC1PSC)15、81774TIMSetIC2Prescaler设置TIMx输入捕获2预分频(写CCMR1_IC2PSC)15、8、9、12、1575TIMSetIC3Prescaler设置TIMx输入捕获3预分频(写CCMR2_IC3PSC)15、876TIMSetIC4Prescaler设置TIMx输入捕获4预分频(写CCMR2_IC4PSC)15、877TIMSetClockDivisi设置TIMx的时钟分割值(写CR1CKD)15、817on78TIMGe

29、tCapturel获得TIMx输入捕获1的值(读CCR1)15、81779TIMGetCapture2获得TIMx输入捕获2的值(读CCR2)15、8、9、12、1580TIMGetCapture3获得TIMx输入捕获3的值(读CCR3)15、881TIMGetCapture4获得TIMx输入捕获4的值(读CCR4)15、882TIMGetCounter获得TIMx计数器的值(读CNT)11783TIM4GetPrescaler获得TIMx预分频值(读PSC)11784TIMGetFlagStatus检查指定的TIM标志位设置与否(读指定标志)11785TIMClearFlag清除TIMx的待

30、处理标志位(清除指定标志)11786TIMGetITStatus检查指定的TIM中断发生与否(读指定中断标志)11787TIM_ClearITPendingBit清除TIMx的中断待处理位(清除指定中断标志)117函数TIM_DeInit函数TIMDeInit函数名TIMDeInit函数原形voidTIMDeInit(TIMTypeDef*TIMx)功能描述将外设TIMx寄存器重设为缺省值输入参数TIMx:x可以是117,来选择TIM外设输出参数无返回值无先决条件无被调用函数RCCAPBlPeriphClockCmd().RCCAPB2PeriphClockCmd().例:/*Resetsth

31、eTIM2*/TIM_DeInit(TIM2);函数TIM_TimeBaseInit函数TIMTimeBaseInit函数名TIMTimeBaseInit函数原形voidTIM_TimeBaseInit(TIM_TypeDef*TIMx,TIMTimeBaseInitTypeDef*TIMTimeBaseInitStruct)功能描述根据TIMTimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位输入参数1TIMx:x可以是117,来选择TIM外设输入参数2TIMTimeBase_InitStruet:指向结构TIM_TimeBaseInitTypeDef的指针,包含了T

32、IMx时间基数单位的配置信息参阅Section:TIMTimeBaseInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无TIM_TimeBaseInitTypeDefstructureTIM_TimeBaseInitTypeDef定义于文件“stm32fl0 x_TIM.htypedefstructu16TIM_Period;u16TIM_Prescaler;u8TIM_ClockDivision;u16TIM_CounterMode;u8TIM_RepetitionCounter;TIM_TIMBaseInitTypeDef;TIM_PeriodTIM_

33、Period设置了在下一个更新事件装入活动的自动重装载寄存器周期的值它的取值必须在0 xOOOO和0 xFFFF之间。TIM_PrescalerTIM_Prescaler设置了用来作为TIM时钟频率除数的预分频值。它的取值必须在0 x0000和0 xFFFF之间。TIM_ClockDivisionTIMClockDivision设置了时钟分割。该参数取值见下表。TIMClockDivision描述TIMCKDDIV1Tdts=TckTIMCKDDIV2Tdts=2TckTIMCKDDIV4Tdts=4佩TIM_CounterModeTIMCounterMode选择了计数器模式。该参数取值见下表

34、。TIMCounterMode描述TIMCounterModeUpTIM向上计数模式TIMCounterModeDownTIM向下计数模式TIMCounterModeCenterAligned1TIM中央对齐模式1计数模式TIMCounterModeCenterAligned2TIM中央对齐模式2计数模式TIMCounterModeCenterAligned3TIM中央对齐模式3计数模式TIM_RepetitionCounterTIM_RepetitionCounter设置了周期计数器值。RCR向下计数器每次计数至0,会产生一个更新事件且计数器重新由RCR值(N)开始计数。这意味着在PWM模式

35、(N+1)对应着:.边沿对齐模式下PWM周期数.中央对齐模式下PWM半周期数它的取值必须在0 x00和0 xFF之间。函数TIM_OC1Init函数TIMOC1Init函数名TIMOC1Init函数原形voidTIMOC1Init(TIMTypeDef*TIMx,TIMOCInitTypeDef*TIMOCInitStruct)功能描述根据TIMOCInitStruct中指定的参数初始化TIMx通道1为输出比较模式输入参数1TIMx:x可以是15、817,来选择TIM外设输入参数2TIM_OCInitStruct:指向结构TIM_OCInitTypeDef的指针,包含了TIM时间基数单位的配置

36、信息。参阅Section:TIM_OCInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无TIM_OCInitTypeDefstructureTIM_OCInitTypeDef定义于文件“stm32fl0 x_TIM.h”:typedefstructu16TIM_OCMode;u16TIM_OutputState;u16TIM_OutputNState;u16TIM_Pulse;u16TIM_OCPolarity;u16TIM_OCNPolarity;u16TIM_OCIdleState;u16TIM_OCNIdleState;TIM_OCInitTypeD

37、ef;TIM_OCModeTIMOCMode选择定时器模式。该参数取值见下表。TIMOCMode描述TIMOCModeTIMingTIM输出比较时间模式(无输出0CxM=000)TIMOCModeActiveTIM输出比较主动模式(匹配时输出有效电平0CxM=001)TIMOCModeInactiveTIM输出比较非主动模式(匹配时输出无效电平0CxM=010)TIMOCModeToggleTIM输出比较触发模式(匹配时输出翻转011)TIMOCModePWM1TIM脉冲宽度调制模式1(PWM模式10CxM=110)TIMOCModePWM2TIM脉冲宽度调制模式2(PWM模式20CxM=ll

38、l)TIM_OutputStateTIMOutputState选择输出比较状态。该参数取值见下表。TIMOutputState描述TIMOutputStateDisable失能输出比较状态(CCxE=0)TIMOutputStateEnable使能输出比较状态(CCxE=l)TIM_OutputNStateTIMOutputNState选择互补输出比较状态。该参数取值见下表。TIMOutputNState描述TIMOutputNStateDisable失能输出比较N状态(CCxNE=0)TIMOutputNStateEnable使能输出比较N状态(CCxNE=l)TIM_PulseTIM_Pu

39、lse设置了待装入捕获比较寄存器的脉冲值。它的取值必须在)x0000和0 xFFFF之间。TIM_OCPolarityTIMOCPolarity输出极性。该参数取值见下表。TIMOCPolarity描述TIMOCPolarityHighTIM输出比较极性高(CCxP=0)TIMOCPolarityLowTIM输出比较极性低(CCxP=l)TIM_OCNPolarityTIMOCNPolarity互补输出极性。该参数取值见下表。TIMOCNPolarity描述TIMOCNPolarityHighTIM输出比较N极性高(CCxNP=O)TIMOCNPolarityLowTIM输出比较N极性低(CC

40、xNP=l)TIM_OCIdleStateTIMOCIdleState选择空闲状态下的非工作状态。该参数取值见下表。TIMOCIdleState描述TIMOCIdleStateSet当MOE=0设置TIM输出比较空闲状态(OIS1=1)TIMOCIdleStateReset当MOE=0重置TIM输出比较空闲状态(OIS1=O)TIM_OCNIdleStateTIMOCNIdleState选择空闲状态下的非工作状态。该参数取值见下表。TIMOCNIdleState描述TIMOCNIdleStateSet当MOE=0设置TIM输出比较N空闲状态(OIS1N=1)TIMOCNIdleStateRes

41、et当MOE=0重置TIM输出比较N空闲状态(OIS1N=O)例:/*ConfigurestheTIMChannel1inPWMMode*/TIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;TIM_OCInitStructure.TIM_Pu

42、lse=0 x7FF;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;TIM_OC1Init(TIM1,&TIM_OCInitStructure);函数TIM_OC2Init函数TIMOC2Init

43、函数名TIMOC2Init函数原形voidTIMOC2Init(TIMTypeDef*TIMx,TIMOCInitTypeDef*TIMOCInitStruct)功能描述根据TIMOCInitStruct中指定的参数初始化TIMx通道2为输出比较模式输入参数1TIMx:x可以是15、8、9、12、15,来选择TIM外设输入参数2TIM_OCInitStruct:指向结构TIM_OCInitTypeDef的指针,包含了TIM时间基数单位的配置信息参阅Section:TIMOCInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无例:/*Configuresthe

44、TIMChannel2inPWMMode*/TIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;TIM_OCInitStructure.TIM_Pulse=0 x7FF;TIM_OCInitStructure.TIM_OCPolarity=TI

45、M_OCPolarity_Low;TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCNPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;TIM_OC2Init(TIM1,&TIM_OCInitStructure);函数TIM_OC3Init函数TIMOC3Init函数名TIM0C3Init函数原形voidTIMOC3Init(TIMTypeDef*TIMx,

46、TIMOCInitTypeDef*TIMOCInitStruct)功能描述根据TIMOCInitStruct中指定的参数初始化TIMx通道3为输出比较模式输入参数1TIMx:x可以是15、8,来选择TIM外设输入参数2TIM_OCInitStruct:指向结构TIM_OCInitTypeDef的指针,包含了TIM时间基数单位的配置信息参阅Section:TIMOCInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无例:/*ConfigurestheTIMChannel3inPWMMode*/TIM_OCInitTypeDefTIM_OCInitStructu

47、re;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_OutputNState=TIM_OutputNState_Enable;TIM_OCInitStructure.TIM_Pulse=0 x7FF;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;TIM_OCInitStructure.TIM_OCNPolarity=TIM

48、_OCNPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OCInitStructure.TIM_OCNIdleState=TIM_OCIdleState_Reset;TIM_OC3Init(TIM1,&TIM_OCInitStructure);函数TIM_OC4Init函数TIMOC4Init函数名TIM0C4Init函数原形voidTIMOC4Init(TIMTypeDef*TIMx,TIMOCInitTypeDef*TIMOCInitStruct)功能描述根据TIMOCInitStruct中指

49、定的参数初始化TIMx通道4为输出比较模式输入参数1TIMx:x可以是15、8,来选择TIM外设输入参数2TIM_OCInitStruct:指向结构TIM_OCInitTypeDef的指针,包含了TIM时间基数单位的配置信息参阅Section:TIMOCInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无例:/*ConfigurestheTIMChannel4inPWMMode*/TIM_OCInitTypeDefTIM_OCInitStructure;TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;TIM_OC

50、InitStructure.TIM_OutputState=TIM_OutputState_Enable;TIM_OCInitStructure.TIM_Pulse=0 x7FF;TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_Low;TIM_OCInitStructure.TIM_OCIdleState=TIM_OCIdleState_Set;TIM_OC4Init(TIM1,&TIM_OCInitStructure);函数TIM_ICInit函数TIMICInit函数名TIMICInit函数原形voidTIMICInit(TIMTypeD

51、ef*TIMx,TIMICInitTypeDef*TIMICInitStruct)功能描述根据TIMICInitStruct中指定的参数初始化外设TIMx为输入捕获模式输入参数1TIMx:x可以是15、817,来选择TIM外设输入参数2TIM_ICInitStruct:指向结构TIM_ICInitTypeDef的指针,包含了TIMx的配置信息参阅Section:TIMICInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无TIM_ICInitTypeDefstructureTIM_ICInitTypeDef定义于文件“stm32fl0 x_TIM.h”:ty

52、pedefstructu16TIM_Channel;u16TIM_ICPolarity;u16TIM_ICSelection;u16TIM_ICPrescaler;u16TIM_ICFilter;TIM_ICInitTypeDef;TIM_ChannelTIMChannel选择通道。该参数取值见下表。TIMChannel描述TIMChannell使用TIM通道1TIMChannel2使用TIM通道2TIMChannel3使用TIM通道3TIMChannel4使用TIM通道4TIM_ICPolarityTIMICPolarity输入活动沿。该参数取值见下表。TIMICPolarity描述TIMI

53、CPolarityRisingTIM输入捕获上升沿TIMICPolarityFallingTIM输入捕获下降沿TIM_ICSelectionTIMICSelection选择输入。该参数取值见下表。TIMICSelection描述TIMICSelectionDirectTITIM输入选择对应地与IC1或IC2或IC3或IC4相连(CCxS=Ol)TIMICSelectionIndirectTITIM输入选择对应地与IC2或IC1或IC4或IC3相连(CCxS=10)TIMICSelectionTRCTIM输入选择与TRC相连(CCxS=ll)TIM_ICPrescalerTIMICPrescal

54、er设置输入捕获预分频器。该参数取值见下表。TIMICPrescaler描述TIMICPSCDIV1TIM捕获在捕获输入上每探测到一个边沿执行一次TIMICPSCDIV2TIM捕获每2个事件执行一次TIMICPSCDIV4TIM捕获每4个事件执行一次TIMICPSCDIV8TIM捕获每8个事件执行一次TIM_ICFilterTIM_ICFilter选择输入比较滤波器。该参数取值在0 x0和OxF之间。例:/*TIMInputCaptureChannel1modeConfiguration*/TIM_ICInitTypeDefTIM_ICInitStructure;TIM_ICInitStruc

55、ture.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Falling;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV2;TIM_ICInitStructure.TIM_ICFilter=0 x0;TIM_ICInit(&TIM_ICInitStructure);函数TIM_PWMIConfig函数nMPWMConfi

56、g函数名TIMPWMIConfig函数原形TIMPWMIConfig(TIMTypeDef*TIMx,TIMICInitTypeDef*TIMICInitStruct)功能描述根据TIM_ICInitStruct中指定的参数设置外设TIM工作在PWM输入模式,仅能使用通道1和通道2输入参数1TIMx:x可以是15、8、9、12、15,来选择TIM外设输入参数2TIM_ICInitStruct:指向结构TIM_ICInitTypeDef的指针,包含了TIM的配置信息。参阅Section:TIMICInitTypeDef查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无例:/*TI

57、MPWMInputChannel1modeConfiguration*/TIM_ICInitTypeDefTIM_ICInitStructure;TIM_ICInitStructure.TIM_Channel=TIM_Channel_1;TIM_ICInitStructure.TIM_ICPolarity=TIM_ICPolarity_Rising;TIM_ICInitStructure.TIM_ICSelection=TIM_ICSelection_DirectTI;TIM_ICInitStructure.TIM_ICPrescaler=TIM_ICPSC_DIV1;TIM_ICInitStructure.TIM_ICFilter=0 x0;TIM_PWMIConfig(TIM1,&TIM_ICInitStructure);函数TIM_BDTRConfig函数TIMBDTRConfig函数名TIMBDTRConfig函数原形voidTIM_BDTRConfig(TIM_TypeDef*TIMx,TIM_BDTRInitTypeDef*TIMBDTRInitStruct)功能描述设置刹车特性,死区时间,锁电平,OSSI

温馨提示

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

评论

0/150

提交评论