STM32F10XX通用定时器应用指南.doc

上传人:牧羊曲112 文档编号:4117378 上传时间:2023-04-05 格式:DOC 页数:62 大小:1.27MB
返回 下载 相关 举报
STM32F10XX通用定时器应用指南.doc_第1页
第1页 / 共62页
STM32F10XX通用定时器应用指南.doc_第2页
第2页 / 共62页
STM32F10XX通用定时器应用指南.doc_第3页
第3页 / 共62页
STM32F10XX通用定时器应用指南.doc_第4页
第4页 / 共62页
STM32F10XX通用定时器应用指南.doc_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《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 快速特征(设

23、置CCMR1_OC2FE)15、8、9、12、1544TIM_OC3FastConfig设置 TIMx 捕获比较 3 快速特征(设置CCMR2_OC3FE)15、845TIM_OC4FastConfig设置 TIMx 捕获比较 4 快速特征(设置CCMR2_OC4FE)15、846TIM_ClearOC1Ref在一个外部事件时清除或者保持 OCREF1 信号(设置CCMR1_OC1CE)15、847TIM_ClearOC2Ref在一个外部事件时清除或者保持 OCREF2 信号(设置CCMR1_OC2CE)15、848TIM_ClearOC3Ref在一个外部事件时清除或者保持 OCREF3 信号

24、(设置CCMR2_OC3CE)15、849TIM_ClearOC4Ref在一个外部事件时清除或者保持 OCREF4 信号(设置CCMR2_OC4CE)15、850TIM_OC1PolarityConfig设置 TIMx 通道 1 极性(设置CCER_CC1P)15、81751TIM_OC1NPolarityConfig设置 TIMx 通道 1N 极性(设置CCER_CC1NP)1、8、151752TIM_OC2PolarityConfig设置 TIMx 通道 2 极性(设置CCER_CC2P)15、8、9、12、1553TIM_OC2NPolarityConfig设置 TIMx 通道 2N 极

25、性(设置CCER_CC2NP)1、815、854TIM_OC3PolarityConfig设置 TIMx 通道 3 极性(设置CCER_CC3P)15、855TIM_OC3NPolarityConfig设置 TIMx 通道 3N 极性(设置CCER_CC3NP)1、856TIM_OC4PolarityConfig设置 TIMx 通道 4 极性(设置CCER_CC4P)15、857TIM_CCxCmd使能或者失能 TIMx 捕获比较通道 x(设置通道x的CCER_CCxE)15、81758TIM_CCxNCmd使能或者失能 TIMx 捕获比较通道 xN(设置通道x的CCER_CCxNE)1、8、

26、151759TIM_SelectOCxM选择 TIMx 输出比较模式(CCMR1/2_OcxM=000111)。本函数在改变输出比较模式前失能选中的通道。用户必须使用函数TIM_CCxCmd 和 TIM_CCxNCmd 来使能这个通道。15、81760TIM_UpdateDisableConfig设置TIMx 允许/禁止更新事件产生(设置CR1_UDIS)11761TIM_UpdateRequestConfig设置 TIMx 的中断和DMA更新请求源模式(设置CR1_URS)11762TIM_SelectHallSensor使能或者失能 TIMx 霍尔传感器接口(设置CR2_TI1S)15、8

27、63TIM_SelectOnePulseMode设置 TIMx 单脉冲模式(设置CR1_OPM)11764TIM_SelectOutputTrigger选择 TIMx 主模式控制器输出模式(复位、使能、更新、捕获/比较1、比较OC1REF 、比较OC2REF 、比较OC3REF 、比较OC4REF)19、12、1565TIM_SelectSlaveMode选择 TIMx 从模式控制器功能(复位、更新、触发、外部时钟模式1)15、8、9、12、1566TIM_SelectMasterSlaveMode设置或者重置 TIMx 主/从模式延迟(设置SMCR_MSM)15、8、9、12、1567TIM

28、_SetCounter设置 TIMx 计数器寄存器值(写CNT)11768TIM_SetAutoreload设置 TIMx 自动重装载寄存器值(写ARR)11769TIM_SetCompare1设置 TIMx 捕获比较 1 寄存器值(写CCR1)15、81770TIM_SetCompare2设置 TIMx 捕获比较 2 寄存器值(写CCR2)15、8、9、12、1571TIM_SetCompare3设置 TIMx 捕获比较 3 寄存器值(写CCR3)15、872TIM_SetCompare4设置 TIMx 捕获比较 4 寄存器值(写CCR4)15、873TIM_SetIC1Prescaler设

29、置 TIMx 输入捕获 1 预分频(写CCMR1_IC1PSC)15、81774TIM_SetIC2Prescaler设置 TIMx 输入捕获 2 预分频(写CCMR1_IC2PSC)15、8、9、12、1575TIM_SetIC3Prescaler设置 TIMx 输入捕获 3 预分频(写CCMR2_IC3PSC)15、876TIM_SetIC4Prescaler设置 TIMx 输入捕获 4 预分频(写CCMR2_IC4PSC)15、877TIM_SetClockDivision设置 TIMx 的时钟分割值(写CR1_CKD)15、81778TIM_GetCapture1获得 TIMx 输入捕

30、获 1 的值(读CCR1)15、81779TIM_GetCapture2获得 TIMx 输入捕获 2 的值(读CCR2)15、8、9、12、1580TIM_GetCapture3获得 TIMx 输入捕获 3 的值(读CCR3)15、881TIM_GetCapture4获得 TIMx 输入捕获 4 的值(读CCR4)15、882TIM_GetCounter获得 TIMx 计数器的值(读CNT)11783TIM_GetPrescaler获得 TIMx 预分频值(读PSC)11784TIM_GetFlagStatus检查指定的 TIM 标志位设置与否(读指定标志)11785TIM_ClearFlag

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

32、PB2PeriphClockCmd().例:/* Resets the TIM2 */TIM_DeInit(TIM2);2 函数TIM_TimeBaseInit 函数 TIM_TimeBaseInit函数名TIM_TimeBaseInit函数原形void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)功能描述根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位输入参数 1TIMx:x 可以是117,来选择 TIM 外设输入参数 2

33、TIMTimeBase_InitStruct:指向结构 TIM_TimeBaseInitTypeDef 的指针,包含了 TIMx 时间基数单位的配置信息参阅 Section:TIM_TimeBaseInitTypeDef 查阅更多该参数允许取值范围输出参数无返回值无先决条件无被调用函数无TIM_TimeBaseInitTypeDef structureTIM_TimeBaseInitTypeDef 定义于文件“stm32f10x_TIM.h”:typedef structu16 TIM_Period;u16 TIM_Prescaler;u8 TIM_ClockDivision;u16 TIM_

34、CounterMode;u8 TIM_RepetitionCounter; TIM_TIMBaseInitTypeDef;TIM_PeriodTIM_Period 设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它的取值必须在 0x0000 和0xFFFF 之间。TIM_PrescalerTIM_Prescaler 设置了用来作为 TIM 时钟频率除数的预分频值。它的取值必须在 0x0000 和 0xFFFF 之间。TIM_ClockDivisionTIM_ClockDivision 设置了时钟分割。该参数取值见下表。TIM_ClockDivision描述TIM_CKD_DIV1TD

35、TS = TckTIM_CKD_DIV2TDTS = 2TckTIM_CKD_DIV4TDTS = 4TckTIM_CounterModeTIM_CounterMode 选择了计数器模式。该参数取值见下表。TIM_CounterMode描述TIM_CounterMode_UpTIM 向上计数模式TIM_CounterMode_DownTIM 向下计数模式TIM_CounterMode_CenterAligned1TIM 中央对齐模式 1 计数模式TIM_CounterMode_CenterAligned2TIM 中央对齐模式 2 计数模式TIM_CounterMode_CenterAligne

36、d3TIM 中央对齐模式 3 计数模式TIM_RepetitionCounter TIM_RepetitionCounter设置了周期计数器值。RCR向下计数器每次计数至0,会产生一个更新事件且计数器重新由RCR值(N)开始计数。这意味着在PWM模式(N+1)对应着:. 边沿对齐模式下PWM周期数. 中央对齐模式下PWM半周期数它的取值必须在0x00和0xFF之间。3 函数TIM_OC1Init 函数 TIM_OC1Init函数名TIM_OC1Init函数原形void TIM_OC1Init(TIM_TypeDef* TIMx,TIM_OCInitTypeDef* TIM_OCInitStru

37、ct)功能描述根据 TIM_OCInitStruct 中指定的参数初始化 TIM x通道1为输出比较模式输入参数 1TIMx:x 可以是15、817,来选择 TIM 外设输入参数2TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,包含了 TIM 时间基数单位的配置信息。参阅 Section:TIM_OCInitTypeDef 查阅更多该参数 允许取值范围输出参数无返回值无先决条件无被调用函数无TIM_OCInitTypeDef structureTIM_OCInitTypeDef 定义于文件“stm32f10x_TIM.h”:typedef structu

38、16 TIM_OCMode;u16 TIM_OutputState; u16 TIM_OutputNState; u16 TIM_Pulse;u16 TIM_OCPolarity; u16 TIM_OCNPolarity; u16 TIM_OCIdleState; u16 TIM_OCNIdleState; TIM_OCInitTypeDef;TIM_OCModeTIM_OCMode 选择定时器模式。该参数取值见下表。TIM_OCMode描述TIM_OCMode_TIMingTIM 输出比较时间模式(无输出OCxM=000)TIM_OCMode_ActiveTIM 输出比较主动模式(匹配时输出

39、有效电平OCxM=001)TIM_OCMode_InactiveTIM 输出比较非主动模式(匹配时输出无效电平OCxM=010)TIM_OCMode_ToggleTIM 输出比较触发模式(匹配时输出翻转011)TIM_OCMode_PWM1TIM 脉冲宽度调制模式 1(PWM模式1 OCxM=110)TIM_OCMode_PWM2TIM 脉冲宽度调制模式 2(PWM模式2 OCxM=111)TIM_OutputStateTIM_OutputState选择输出比较状态。该参数取值见下表。TIM_OutputState描述TIM_OutputState_Disable失能输出比较状态(CCxE=0

40、)TIM_OutputState_Enable使能输出比较状态(CCxE=1)TIM_OutputNStateTIM_OutputNState选择互补输出比较状态。该参数取值见下表。TIM_OutputNState描述TIM_OutputNState_Disable失能输出比较 N 状态(CCxNE=0)TIM_OutputNState_Enable使能输出比较 N 状态(CCxNE=1)TIM_PulseTIM_Pulse 设置了待装入捕获比较寄存器的脉冲值。它的取值必须在 0x0000 和 0xFFFF 之间。TIM_OCPolarityTIM_OCPolarity输出极性。该参数取值见下

41、表。TIM_OCPolarity描述TIM_OCPolarity_HighTIM 输出比较极性高(CCxP=0)TIM_OCPolarity_LowTIM 输出比较极性低(CCxP=1)TIM_OCNPolarityTIM_OCNPolarity互补输出极性。该参数取值见下表。TIM_OCNPolarity描述TIM_OCNPolarity_HighTIM 输出比较 N 极性高(CCxNP=0)TIM_OCNPolarity_LowTIM 输出比较 N 极性低(CCxNP=1)TIM_OCIdleStateTIM_OCIdleState选择空闲状态下的非工作状态。该参数取值见下表。TIM_OC

42、IdleState描述TIM_OCIdleState_Set当 MOE=0 设置 TIM 输出比较空闲状态(OIS1=1)TIM_OCIdleState_Reset当 MOE=0 重置 TIM 输出比较空闲状态(OIS1=0)TIM_OCNIdleStateTIM_OCNIdleState选择空闲状态下的非工作状态。该参数取值见下表。TIM_OCNIdleState描述TIM_OCNIdleState_Set当 MOE=0 设置 TIM 输出比较 N 空闲状态(OIS1N=1)TIM_OCNIdleState_Reset当 MOE=0 重置 TIM 输出比较 N 空闲状态(OIS1N=0)例:

43、/* Configures the TIM Channel1 in PWM Mode */ TIM_OCInitTypeDef TIM_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 = 0x7FF;

44、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);4 函数TIM_OC2Init 函数 TIM_OC2Init函数名TIM_OC2Init函数原形void TIM_OC2Init(TIM_TypeDef* TIMx,TIM_OCInitTypeDef* TIM_OCInitStruct)功能描述根据 TIM_OCInitStruct 中指定的参数初始化 TIM x通道 2为输出比较模式输入参数 1TIMx:x 可以是15、8、9、12、15,来选择 TIM 外设输入参数2TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,包含了 TIM 时间基数单位的配置信息参阅 Section:TIM_OCInitTypeDef 查阅更多该参数允许取值范围输出参数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号