STM32F10XX通用定时器应用指南 - 图文

更新时间:2024-04-15 07:39:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

STM32F10XX通用定时器应用指南

湖北文理学院 阮海蓉

在STM32微处理器中,定时器是使用频率最高、用途最广、变化组合最灵活的部件,初学者往往不得要领。本文提纲携领,帮助初学者入门。介绍中以通用定时器为基本对象,高级定时器和基本定时器是在通用定时器的基础上增减了几种功能,在弄懂通用定时器以后就不难理解了。

固件库升级到STM32F10x_StdPeriph_Lib_V3.5.0后,定时器部分与使用手册UM0427有了较大改变,本文做了修订。

通用定时器(TIM2~5)

图1:通用定时器框图

图2:主从定时器实例

1. 每个通用定时器(TIM2~5)的主要组成部件:①一个16位的预分频器(图1中的PSC),对输入的

计数脉冲进行预分频;②一个16位的计数器(图1中的CNT),计数器可以按给定数值向上计数、向下计数、中央对齐(循环向上向下计数)方式工作;③一个主模式控制器(在图2中),用于输出信

1

2. 3.

4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

17.

18. 19. 20. 21. 22. 23. 24.

号(图1及图2中的TRGO)到另一个定时器(也可以是其他部件),供其作为时钟源或触发源使用;④一个从模式控制器(在图1和图2中),用于选择时钟源和触发源;⑤四个捕获/比较控制器(图1中),用于纪录某一输入事件发生时的计数器当前值或用于在计数器到达某一预定数值时使输出发生变化。

预分频器PSC在被使用时其值会自动加上1,即其值为0时不分频,为1时2分频……。 时钟源:①内部时钟(来自APB1),SMS[2:0]=000,ECE=0;②外部引脚ETR(外部时钟模式2,滤波分频后的指定边沿),ECE=1;③由从模式控制器提供的3种可±1的编码器模式(共3种);④由从模式控制器提供的TRGI源(即外部时钟模式1)。

使用内部时钟且APB1分频系数不为1时,定时器时钟=(AHP频率/APB1分频系数)×2。 TRGI源:①外部触发ETR(外部时钟模式1,滤波分频后的指定边沿);②TRC源(见图1);③TI1FP1(来自于输入TI1经滤波和边沿检测)④TI2FP2(来自于输入TI2经滤波和边沿检测)。 TRC源:①来自另一定时器主模式控制器的输出ITR0~ITR3(各定时器定义不同);②来自外部输入TI1(本定时器的CH1或者CH1、CH2和CH3的异或)的跳变边沿(上升沿+下降沿)TI1F_ED。 计数器影子寄存器:放置计数器向上计数时溢出值、向下计数时重装值的寄存器。 更新:重置预分频寄存器和计数器的影子寄存器。

复位:重置预分频寄存器和计数器影子寄存器,清除现存分频值,计数器从0或溢出值开始计数。复位会产生更新事件,更新事件并不会产生复位。 触发:计数器启动、停止、初始化。

更新事件可由计数器上溢/下溢、设置UG位和从模式控制器发出的复位产生,可以被UDIS=0关闭。 计数器可设定为发生更新时不停止和停止(单脉冲模式)。

写入自动重装载寄存器TIMx_ARR,可以选择立即更新到计数器影子寄存器(ARPE=0)或暂不更新(ARPE=1)。

写入预分频寄存器TIMx_PSC后,要在发生更新后才能装载到影子寄存器中。

设置UDIS=1可以禁止更新事件,但是设置UG位以及从模式控制器发出的复位可以使计数器和预分频器被重新初始化。

主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以下事件中的一个作为输出:①本定时器复位(设置UG或由TRGI引起);②本定时器使能(CEN=1或从模式控制器的触发);③本定时器更新;④捕获/比较通道1上一次成功的输入捕获/输出匹配(CC1IF);⑤指定通道1~通道4中的一个,其输出有效(OC1REF~OC4REF)。

从模式控制器可以将输入作为本定时器的时钟源或控制源,控制方式有:①关闭从模式,即TRGI无效;②编码器模式1,根据TI1FP1的电平,计数器在TI2FP2的边沿向上/向下计数;③编码器模式2,根据TI2FP2的电平,计数器在TI1FP1的边沿向上/向下计数;④编码器模式3,根据另一信号的电平,计数器在TI1FP1和TI2FP2的边沿向上/向下计数;⑤复位,在TRGI的上升沿重新初始化计数器并产生更新信号;⑥门控,TRGI高电平时计数,TRGI低电平时停止计数;⑦触发,TRGI高电平时开始计数(若已在计数中则无影响);⑧外部时钟模式1:以TRGI作为计数脉冲,在TRGI的上升沿计数。

以上从模式控制器的8种状态,①为无效,②③④⑧为提供时钟源,⑤⑥⑦为提供控制源。 输入捕获的触发源:①本通道的输入(TIx映射到通道x);②相邻通道的输入(通道1、2为一组通道3、4为另一组);③TRC源。

使用TRC作为触发源时,时钟源只能是内部时钟或外部时钟模式2的ETRF。

输入捕获工作方式:触发源有效时,将计数器CNT的值复制到本通道的捕获/比较寄存器,并产生CCxIF标志请求中断和DMA。

在输入捕获模式下将同一个输入以相反的有效沿作用到两个相邻通道(限通道1和通道2),并对计数器复位,可实现PWM输入模式,这种模式用于测量输入波形的占空比。

ETR、TI1~TI4均配有边沿检测器和数字滤波器,边沿检测器可以设置为上升沿/下降沿,数字滤波器可以频率fCK_INT或fDTS/n连续采样N次后判定其状态,fDTS可设为时钟fCK_INT或fCK_INT/2、fCK_INT/4。 外部触发ETR配有预分频器(1、2、4、8)。

2

25. TRGI上的事件对本定时器的作用可以选择被延迟,以使本定时器与主模式控制器驱动的从定时器完

美同步。

26. 输出比较工作方式:在该通道的捕获/比较寄存器中预存一个值,当计数器CNT的数值与捕获/比较寄

存器的值相符时,设置或改变匹配输出OCxREF的状态,并产生CCxIF标志请求中断和DMA。 27. 输出比较的工作模式:①冻结,不起作用;②匹配时输出有效(高)电平;③匹配时输出无效(低)

电平;④匹配时翻转输出电平;⑤强制输出无效(低)电平;⑥强制输出有效(高)电平;⑦PWM模式1,计数器<寄存器时输出有效(高)电平,反之输出无效(低)电平;⑧PWM模式2,计数器<寄存器时输出无效(低)电平,反之输出有效(高)电平。

28. 以上8种输出比较的工作模式中,用于匹配有效的有②③④⑦⑧,用于独立操控的有⑤⑥。

29. 输出比较的匹配输出可设置为受ETRF控制:①输出与ETRF无关;②输出被ETRF高电平清0。 30. 使用OCxPE可以设置在写入4个通道寄存器时:①禁止预装载,即写入值立即启用生效(OcxPE=0);

②开启预装载,即写入值在下一次更新事件到来时启用(OcxPE=1)。 31. 输出信号可被同极性或反极性传送至指定引脚CH1~CH4。

32. 输出比较在中央对齐模式下,通道的中断标志可选择:①仅向上计数时被设置;②仅向下计数时被设

置;③向上和向下计数时均设置。

33. 定时器的中断和DMA可由以下事件引起:①计数器被触发;②计数器上溢/下溢、设置UG位和从模

式控制器产生的更新,其中后2种可以被关闭;③通道1~通道4发生捕获/匹配。

34. 定时器共有6个事件:触发TRGI有效、更新和4个捕获/比较通道匹配。事件可作为DMA和中断的

源。事件可设置事件产生寄存器TIMx_EGR中各标志的方法模拟产生。

高级定时器(TIM1~8)

图3:高级定时器框图

1. TIM1和TIM8的内部时钟来自APB2。

3

2. TIM8使用内部时钟且APB2分频系数不为1时,定时器时钟=(AHB频率/APB2分频系数)×2。

3. 高级定时器有重复次数计数器。启用重复次数计数器后,只有当溢出达到预定的重复次数后才会发生

更新。但软件以及从模式控制器产生的更新事件仍会立即更新。BBBB

4. 重复次数计数器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. 若启用了互补输出,则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=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,经过

一个死区时间后,OCx=OISx,OCxN=OISxN。OSSI=0:输出OCx=CCxP、OCxN=CCxNP,经过一个死区时间后,OCx=OISx,OCxN=OISxN,同时OCx和OCxN与定时器断开。

基本定时器(TIM6~7)

1. 基本定时器只能使用内部时钟,只有更新事件。 2. 基本定时器只有向上计数方式。

3. 主模式控制器的输出可作为另一定时器的输入,主模式控制器可使用以下事件中的一个作为输出:①

本定时器复位(设置UG或由TRGI引起);②本定时器使能(CEN=1或从模式控制器的触发);③本定时器更新。

4

TIM库函数

序号 1 2 3 4 5 6 7 8 9 10 函数名 TIM_DeInit TIM_TimeBaseInit TIM_OC1Init TIM_OC2Init TIM_OC3Init TIM_OC4Init TIM_ICInit TIM_PWMIConfig TIM_BDTRConfig TIM_TimeBaseStructInit 描述 将外设 TIMx 寄存器重设为缺省值 根据 指定的参数初始化 TIMx 的时间基数单位 根据 指定的参数初始化 TIMx 通道 1为输出比较模式 根据 指定的参数初始化 TIMx 通道 2为输出比较模式 根据 指定的参数初始化 TIMx 通道 3为输出比较模式 根据 指定的参数初始化 TIMx 通道 4为输出比较模式 根据 指定的参数初始化外设 TIMx为输入捕获模式 通道1和通道2 TIMx 1~17 1~17 1~5、8~17 1~5、8、9、12、15 1~5、8 1~5、8 1~5、8~17 12、15 根据 指定的参数设置外设 TIMx 工作在 PWM 输入模式,仅能使用1~5、8、9、设置刹车特性,死区时间,锁电平,OSSI,OSSR 状态和 AOE1、8 (自动输出使能) 把 TIM_TimeBaseInitStruct 中的每一个参数按缺省值填入 把 TIM_OCInitStruct 中的每一个参数按缺省值填入 把 TIM_ICInitStruct 中的每一个参数按缺省值填入 把 TIM_BDTRInitStruct 中的每一个参数按缺省值填入 使能或者失能 TIMx 外设(写CR_CEN) 使能或者失能 TIMx 外设的主输出(写BDTR_MOE) 使能或者失能指定的 TIM 中断(写DIER) 1~17 1、8、15~17 1~17 1~17 1~5、8、15~17 1~5、8、15~17 1~5、8、9、12、15 1~5、9、12、15 1~5、9、12、15 1~5、8 1~5、8 1~5、8 1~17 11 TIM_OCStructInit 12 TIM_ICStructInit 13 TIM_BDTRStructInit 14 TIM_Cmd 15 TIM_CtrlPWMOutputs 16 TIM _ITConfig 17 TIM_GenerateEvent 设置 TIMx 事件由软件产生(写EGR) 18 TIM_DMAConfig 19 TIM_DMACmd 20 21 22 23 24 TIM_InternalClockConfig TIM_ITRxExternalClockConfig TIM_TIxExternalClockConfig TIM_ETRClockMode1Config TIM_ETRClockMode2Config 设置 TIMx 的 DMA 接口(写DCR) 使能或者失能指定的 TIMx 的 DMA 请求(写DIER) 关闭从模式,使用内部时钟(SMCR_SMS=000) 设置 TIMx从模式使用外部时钟(ITR0~ITR3) 设置 TIMx 从模式使用外部时钟(TI1FED 、TI1FP1、TI2FP2) 配置 TIMx 从模式使用外部时钟模式 1(ETRF) 配置 TIMx 使用外部时钟模式 2(ETRF) 配置 TIMx 外部触发ETR参数(预分频、时钟极性、滤波器) 设置 TIMx 预分频+立即装载/等待更新(写PSC和EGR_UG) 设置 TIMx 计数器模式(写CR1_DIR和CR1_CMS) 5

25 TIM_ETRConfig 26 27

TIM_PrescalerConfig TIM_CounterModeConfig 1~5、8

28 29 30 31 32 33 34 TIM_SelectInputTrigger TIM_EncoderInterfaceConfig TIM_ForcedOC1Config TIM_ForcedOC2Config TIM_ForcedOC3Config TIM_ForcedOC4Config TIM_ARRPreloadConfig 选择 TIMx 输入触发源(ITR0~ITR3、TI1FED 、TI1FP1、TI2FP2、1~5、8、9、12、15 ETRF) 设置 TIMx从模式使用编码器功能 1~5、8 置 TIMx 输出 1 为活动或者非活动电平(强制OC1REF为0或1) 1~5、8~17 置 TIMx 输出 2 为活动或者非活动电平(强制OC2REF为0或1) 1~5、8、9、12、15 置 TIMx 输出 3 为活动或者非活动电平(强制OC3REF为0或1) 1~5、8 置 TIMx 输出 4 为活动或者非活动电平(强制OC4REF为0或1) 1~5、8 使能或者失能 TIMx 在 ARR 上的预装载寄存器(等待更新/立即1~17 生效CR1_ARPE) 选择 TIMx 外设的通讯事件(设置CR2_CCUS,仅对互补通道有效) 1、8、15~17 1~5、8、15~17 1~5、8、15 35 TIM_SelectCOM 36 TIM_SelectCCDMA 选择 TIMx 外设的捕获比较 DMA 源(使能/失能CR2_CCDS) 37 38 39 40 41 TIM_CCPreloadCont设置TIM x 的CC x E、CC xNE、OC xM预装载控制位(设置rol TIM_OC1PreloadConfig TIM_OC2PreloadConfig TIM_OC3PreloadConfig TIM_OC4PreloadConfig CR2_CCPC,仅对互补通道有效) 使能或者失能 TIMx 在 CCR1 上的预装载(设置CCMR1_OC1PE) 1~5、8~17 使能或者失能 TIMx 在 CCR2 上的预装载(设置CCMR1_OC2PE) 1~5、8、9、12、15 使能或者失能 TIMx 在 CCR3 上的预装载(设置CCMR2_OC3PE) 1~5、8 使能或者失能 TIMx 在 CCR4 上的预装载(设置CCMR2_OC4PE) 1~5、8 1~5、8~17 1~5、8、9、12、15 1~5、8 1~5、8 42 TIM_OC1FastConfig 设置 TIMx 捕获比较 1 快速特征(设置CCMR1_OC1FE) 43 TIM_OC2FastConfig 设置 TIMx 捕获比较 2 快速特征(设置CCMR1_OC2FE) 44 TIM_OC3FastConfig 设置 TIMx 捕获比较 3 快速特征(设置CCMR2_OC3FE) 45 TIM_OC4FastConfig 设置 TIMx 捕获比较 4 快速特征(设置CCMR2_OC4FE) 46 TIM_ClearOC1Ref 47 TIM_ClearOC2Ref 48 TIM_ClearOC3Ref 49 TIM_ClearOC4Ref 50 51 TIM_OC1PolarityConfig TIM_OC1NPolarityConfig 在一个外部事件时清除或者保持 OCREF1 信号(设置1~5、8 CCMR1_OC1CE) 在一个外部事件时清除或者保持 OCREF2 信号(设置1~5、8 CCMR1_OC2CE) 在一个外部事件时清除或者保持 OCREF3 信号(设置1~5、8 CCMR2_OC3CE) 在一个外部事件时清除或者保持 OCREF4 信号(设置1~5、8 CCMR2_OC4CE) 设置 TIMx 通道 1 极性(设置CCER_CC1P) 设置 TIMx 通道 1N 极性(设置CCER_CC1NP) 1~5、8~17 1、8、15~17 1~5、8、9、52 TIM_OC2PolarityCo设置 TIMx 通道 2 极性(设置CCER_CC2P)

6

nfig 12、15 53 54 55 56 TIM_OC2NPolarityConfig TIM_OC3PolarityConfig TIM_OC3NPolarityConfig TIM_OC4PolarityConfig 设置 TIMx 通道 2N 极性(设置CCER_CC2NP) 设置 TIMx 通道 3 极性(设置CCER_CC3P) 设置 TIMx 通道 3N 极性(设置CCER_CC3NP) 设置 TIMx 通道 4 极性(设置CCER_CC4P) 1、81~5、8 1~5、8 1、8 1~5、8 57 TIM_CCxCmd 58 TIM_CCxNCmd 使能或者失能 TIMx 捕获比较通道 x(设置通道x的CCER_CCxE) 1~5、8~17 使能或者失能 TIMx 捕获比较通道 xN(设置通道x的1、8、15~17 CCER_CCxNE) 选择 TIMx 输出比较模式(CCMR1/2_OcxM=000~111)。本函数在改变输出比较模式前失能选中的通道。用户必须使用函数1~5、8~17 TIM_CCxCmd 和 TIM_CCxNCmd 来使能这个通道。 设置TIMx 允许/禁止更新事件产生(设置CR1_UDIS) 设置 TIMx 的中断和DMA更新请求源模式(设置CR1_URS) 使能或者失能 TIMx 霍尔传感器接口(设置CR2_TI1S) 设置 TIMx 单脉冲模式(设置CR1_OPM) 1~17 59 TIM_SelectOCxM TIM_UpdateDisableConfig TIM_UpdateRequestConfig TIM_SelectHallSensor TIM_SelectOnePulseMode TIM_SelectOutputTrigger TIM_SelectSlaveMode TIM_SelectMasterSlaveMode 60 61 62 63 1~17 1~5、8 1~17 64 选择 TIMx 主模式控制器输出模式(复位、使能、更新、捕获/比1~9、12、较1、比较OC1REF 、比较OC2REF 、比较OC3REF 、比较15 OC4REF) 选择 TIMx 从模式控制器功能(复位、更新、触发、外部时钟模1~5、8、9、12、15 式1) 设置或者重置 TIMx 主/从模式延迟(设置SMCR_MSM) 设置 TIMx 计数器寄存器值(写CNT) 设置 TIMx 自动重装载寄存器值(写ARR) 设置 TIMx 捕获比较 1 寄存器值(写CCR1) 设置 TIMx 捕获比较 2 寄存器值(写CCR2) 设置 TIMx 捕获比较 3 寄存器值(写CCR3) 设置 TIMx 捕获比较 4 寄存器值(写CCR4) 设置 TIMx 输入捕获 1 预分频(写CCMR1_IC1PSC) 设置 TIMx 输入捕获 2 预分频(写CCMR1_IC2PSC) 设置 TIMx 输入捕获 3 预分频(写CCMR2_IC3PSC) 设置 TIMx 输入捕获 4 预分频(写CCMR2_IC4PSC) 设置 TIMx 的时钟分割值(写CR1_CKD) 7

1~5、8、9、12、15 1~17 1~17 1~5、8~17 1~5、8、9、12、15 1~5、8 1~5、8 1~5、8~17 1~5、8、9、12、15 1~5、8 65 66 67 TIM_SetCounter 68 TIM_SetAutoreload 69 TIM_SetCompare1 70 TIM_SetCompare2 71 TIM_SetCompare3 72 TIM_SetCompare4 73 74 75 76 TIM_SetIC1Prescaler TIM_SetIC2Prescaler TIM_SetIC3Prescaler TIM_SetIC4Prescaler 1~5、8 1~5、8~17 77 TIM_SetClockDivisi

on 78 TIM_GetCapture1 79 TIM_GetCapture2 80 TIM_GetCapture3 81 TIM_GetCapture4 82 TIM_GetCounter 83 TIM_GetPrescaler 84 TIM_GetFlagStatus 85 TIM_ClearFlag 86 TIM_GetITStatus 87

TIM_ClearITPendingBit 获得 TIMx 输入捕获 1 的值(读CCR1) 获得 TIMx 输入捕获 2 的值(读CCR2) 获得 TIMx 输入捕获 3 的值(读CCR3) 获得 TIMx 输入捕获 4 的值(读CCR4) 获得 TIMx 计数器的值(读CNT) 获得 TIMx 预分频值(读PSC) 检查指定的 TIM 标志位设置与否(读指定标志) 清除 TIMx 的待处理标志位(清除指定标志) 检查指定的 TIM 中断发生与否(读指定中断标志) 清除 TIMx 的中断待处理位(清除指定中断标志) 1~5、8~17 1~5、8、9、12、15 1~5、8 1~5、8 1~17 1~17 1~17 1~17 1~17 1~17

8

1 函数TIM_DeInit

函数 TIM_DeInit 函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 TIM_DeInit void TIM_DeInit(TIM_TypeDef* TIMx) 将外设 TIMx 寄存器重设为缺省值 TIMx:x 可以是1~17,来选择 TIM 外设 无 无 无 RCC_APB1PeriphClockCmd().RCC_APB2PeriphClockCmd(). 例:

/* Resets the TIM2 */ TIM_DeInit(TIM2);

2 函数TIM_TimeBaseInit

函数 TIM_TimeBaseInit 函数名 函数原形 功能描述 输入参数 1 输入参数 2 TIM_TimeBaseInit void TIM_TimeBaseInit(TIM_TypeDef* TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) TIMx:x 可以是1~17,来选择 TIM 外设 TIMTimeBase_InitStruct:指向结构 TIM_TimeBaseInitTypeDef 的指针,包含了 TIMx 时间基数单位的配置信息 参阅 Section:TIM_TimeBaseInitTypeDef 查阅更多该参数允许取值范围 无 无 无 无 TIMx, 根据 TIM_TimeBaseInitStruct 中指定的参数初始化 TIMx 的时间基数单位 输出参数 返回值 先决条件 被调用函数 TIM_TimeBaseInitTypeDef structure

TIM_TimeBaseInitTypeDef 定义于文件“stm32f10x_TIM.h”:

typedef struct {

u16 TIM_Period; u16 TIM_Prescaler; u8 TIM_ClockDivision; u16 TIM_CounterMode; u8 TIM_RepetitionCounter;

9

} TIM_TIMBaseInitTypeDef;

TIM_Period

TIM_Period 设置了在下一个更新事件装入活动的自动重装载寄存器周期的值。它的取值必须在 0x0000 和0xFFFF 之间。

TIM_Prescaler

TIM_Prescaler 设置了用来作为 TIM 时钟频率除数的预分频值。它的取值必须在 0x0000 和 0xFFFF 之间。

TIM_ClockDivision

TIM_ClockDivision 设置了时钟分割。该参数取值见下表。 TIM_ClockDivision TIM_CKD_DIV1 TIM_CKD_DIV2 TIM_CKD_DIV4 TDTS = Tck TDTS = 2Tck TDTS = 4Tck 描述 TIM_CounterMode

TIM_CounterMode 选择了计数器模式。该参数取值见下表。 TIM_CounterMode TIM_CounterMode_Up TIM_CounterMode_Down TIM_CounterMode_CenterAligned1 TIM_CounterMode_CenterAligned2 TIM_CounterMode_CenterAligned3 描述 TIM 向上计数模式 TIM 向下计数模式 TIM 中央对齐模式 1 计数模式 TIM 中央对齐模式 2 计数模式 TIM 中央对齐模式 3 计数模式 TIM_RepetitionCounter

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

3 函数TIM_OC1Init

函数 TIM_OC1Init TIM_OC1Init 函数名 函数原形 功能描述 输入参数 1 输入参数2 void TIM_OC1Init(TIM_TypeDef* TIMx,TIM_OCInitTypeDef* TIM_OCInitStruct) 根据 TIM_OCInitStruct 中指定的参数初始化 TIM x通道1为输出比较模式 TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,包含了 TIM 时间基数单位的配置信息。参阅 Section:TIM_OCInitTypeDef 查阅更多该参数 允许取值范围 无 无 10

输出参数 返回值

先决条件 被调用函数 无 无 TIM_OCInitTypeDef structure

TIM_OCInitTypeDef 定义于文件“stm32f10x_TIM.h”: typedef struct {

u16 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_OCMode

TIM_OCMode 选择定时器模式。该参数取值见下表。 TIM_OCMode TIM_OCMode_TIMing TIM_OCMode_Active TIM_OCMode_Inactive TIM_OCMode_Toggle TIM_OCMode_PWM1 TIM_OCMode_PWM2 描述 TIM 输出比较时间模式(无输出OCxM=000) TIM 输出比较主动模式(匹配时输出有效电平OCxM=001) TIM 输出比较非主动模式(匹配时输出无效电平OCxM=010) TIM 输出比较触发模式(匹配时输出翻转011) TIM 脉冲宽度调制模式 1(PWM模式1 OCxM=110) TIM 脉冲宽度调制模式 2(PWM模式2 OCxM=111)

TIM_OutputState

TIM_OutputState选择输出比较状态。该参数取值见下表。 TIM_OutputState TIM_OutputState_Disable TIM_OutputState_Enable 描述 失能输出比较状态(CCxE=0) 使能输出比较状态(CCxE=1)

TIM_OutputNState

TIM_OutputNState选择互补输出比较状态。该参数取值见下表。 TIM_OutputNState TIM_OutputNState_Disable TIM_OutputNState_Enable 描述 失能输出比较 N 状态(CCxNE=0) 使能输出比较 N 状态(CCxNE=1)

TIM_Pulse

TIM_Pulse 设置了待装入捕获比较寄存器的脉冲值。它的取值必须在 0x0000 和 0xFFFF 之间。

TIM_OCPolarity

TIM_OCPolarity输出极性。该参数取值见下表。 TIM_OCPolarity 描述 TIM_OCPolarity_High

TIM 输出比较极性高(CCxP=0) 11

TIM_OCPolarity_Low TIM 输出比较极性低(CCxP=1)

TIM_OCNPolarity

TIM_OCNPolarity互补输出极性。该参数取值见下表。 TIM_OCNPolarity TIM_OCNPolarity_High TIM_OCNPolarity_Low 描述 TIM 输出比较 N 极性高(CCxNP=0) TIM 输出比较 N 极性低(CCxNP=1)

TIM_OCIdleState

TIM_OCIdleState选择空闲状态下的非工作状态。该参数取值见下表。 TIM_OCIdleState 描述 TIM_OCIdleState_Set TIM_OCIdleState_Reset 当 MOE=0 设置 TIM 输出比较空闲状态(OIS1=1) 当 MOE=0 重置 TIM 输出比较空闲状态(OIS1=0)

TIM_OCNIdleState

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

/* 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;

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

输出参数

返回值 先决条件 被调用函数 无 无 无 例:

/* Configures the TIM Channel2 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;

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_OC2Init(TIM1,&TIM_OCInitStructure);

5 函数TIM_OC3Init

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

/* Configures the TIM Channel3 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;

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_OC3Init(TIM1,&TIM_OCInitStructure);

13

6 函数TIM_OC4Init

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

/* Configures the TIM Channel4 in PWM Mode */ TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse = 0x7FF;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set; TIM_OC4Init(TIM1,&TIM_OCInitStructure);

7 函数TIM_ICInit

函数 TIM_ICInit 函数名 函数原形 功能描述 输入参数 1 输入参数 2 TIM_ICInit void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct) 根据 TIM_ICInitStruct 中指定的参数初始化外设 TIMx为输入捕获模式 TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_ICInitStruct:指向结构 TIM_ICInitTypeDef 的指针,包含了 TIMx 的配置 信息 参阅 Section:TIM_ICInitTypeDef 查阅更多该参数允许取值范围 无 无 无 无 输出参数 返回值 先决条件 被调用函数

14

TIM_ICInitTypeDef structure

TIM_ICInitTypeDef 定义于文件“stm32f10x_TIM.h”: typedef struct {

u16 TIM_Channel; u16 TIM_ICPolarity; u16 TIM_ICSelection; u16 TIM_ICPrescaler; u16 TIM_ICFilter; } TIM_ICInitTypeDef;

TIM_Channel

TIM_Channel 选择通道。该参数取值见下表。 TIM_Channel TIM_Channel_1 使用 TIM 通道 1 TIM_Channel_2 使用 TIM 通道 2 TIM_Channel_3 使用 TIM 通道 3 TIM_Channel_4 使用 TIM 通道 4

TIM_ICPolarity

描述 TIM_ICPolarity输入活动沿。该参数取值见下表。

TIM_ICPolarity 描述 TIM_ICPolarity_Rising TIM 输入捕获上升沿 TIM_ICPolarity_Falling TIM 输入捕获下降沿 TIM_ICSelection

TIM_ICSelection选择输入。该参数取值见下表。 TIM_ICSelection 描述 TIM_ICSelection_DirectTI TIM 输入 选择对应地与 IC1 或 IC2 或 IC3 或 IC4 相连(CCxS=01) TIM_ICSelection_IndirectTI TIM 输入 选择对应地与 IC2 或 IC1 或 IC4 或 IC3 相连(CCxS=10) TIM_ICSelection_TRC TIM 输入 选择与 TRC 相连(CCxS=11) TIM_ICPrescaler

TIM_ICPrescaler设置输入捕获预分频器。该参数取值见下表。 TIM_ICPrescaler 描述 TIM_ICPSC_DIV1 TIM 捕获在捕获输入上每探测到一个边沿执行一次 TIM_ICPSC_DIV2 TIM 捕获每 2 个事件执行一次 TIM_ICPSC_DIV4 TIM 捕获每 4 个事件执行一次 TIM_ICPSC_DIV8 TIM 捕获每 8 个事件执行一次

TIM_ICFilter

TIM_ICFilter选择输入比较滤波器。该参数取值在0x0和0xF之间。

例:

/* TIM Input Capture Channel 1 mode Configuration */ TIM_ICInitTypeDef TIM_ICInitStructure;

TIM_ICInitStructure.TIM_Channel = TIM_Channel_1;

TIM_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Falling; TIM_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;

15

TIM_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV2; TIM_ICInitStructure.TIM_ICFilter = 0x0; TIM_ICInit(&TIM_ICInitStructure);

8 函数TIM_PWMIConfig

函数 TIM_PWMIConfig

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

/* TIM PWM Input Channel 1 mode Configuration */ TIM_ICInitTypeDef TIM_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 = 0x0; TIM_PWMIConfig(TIM1,&TIM_ICInitStructure);

9 函数TIM_BDTRConfig

函数 TIM_BDTRConfig

TIM_BDTRConfig 函数名 函数原形 功能描述 输入参数 1 输入参数2 void TIM_BDTRConfig(TIM_TypeDef* *TIM_BDTRInitStruct) TIMx:x 可以是1、8,来选择 TIM 外设 TIM_BDTRInitStruct:指向结构 TIM_BDTRInitTypeDef 的指针,包含了 TIM 的BDTR 寄存器的配置信息 参阅 Section:TIM_BDTRInitTypeDef 查阅更多该参数允许取值范围 无 16

TIMx,TIM_BDTRInitTypeDef 设置刹车特性,死区时间,锁电平,OSSI,OSSR 状态和 AOE(自动输出使能) 输出参数

返回值 先决条件 被调用函数 无 无 无 TIM_BDTRInitStruct structure

TIM_BDTRInitStruct structure 定义于文件“stm32f10x_TIM.h”:

typedef struct {

u16 TIM_OSSRState; u16 TIM_OSSIState; u16 TIM_LOCKLevel; u16 TIM_DeadTIM; u16 TIM_Break;

u16 TIM_BreakPolarity; u16 TIM_AutomaticOutput; } TIM_BDTRInitTypeDef;

TIM_OSSRState

TIM_OSSRState 设置在运行模式下非工作状态选项。该参数取值见下表。 TIM_OSSRState 描述 TIM_OSSRState_Enable TIM_OSSRState_Disable 使能 TIM OSSR 状态(OSSR=1) 失能 TIM OSSR 状态(OSSR=0) TIM_OSSIState

TIM_OSSIState 设置在运行模式下非工作状态选项。该参数取值见下表。 TIM_OSSIState 描述 TIM_OSSIState_Enable TIM_OSSIState_Disable 使能 TIM OSSI 状态(OSSI=1) 失能 TIM OSSI 状态(OSSI=0) TIM_LOCKLevel

TIM_LOCKLevel 设置了锁电平参数。该参数取值见下表。 TIM_LOCKLevel TIM_LOCKLevel_OFF TIM_LOCKLevel_1 TIM_LOCKLevel_2 TIM_LOCKLevel_3 描述 不锁任何锁定(LOOK=00) 使用锁级别1(LOOK=01) 使用锁级别2(LOOK=10) 使用锁级别3(LOOK=11) TIM_DeadTIM

TIM_DeadTIM 指定了输出打开和关闭状态之间的延时(UTG=0x0~0xf)。

TIM_Break

TIM_Break 使能或者失能 TIM 刹车输入。该参数取值见下表。 TIM_Break TIM_Break_Enable TIM_Break_Disable 描述 使能 TIM 刹车输入(BKE=1) 失能 TIM 刹车输入(BKE=0)

17

TIM_BreakPolarity

TIM_BreakPolarity 设置 TIM 刹车输入管脚极性。该参数取值见下表。 TIM_BreakPolarity 描述 TIM_BreakPolarity_Low TIM_BreakPolarity_High TIM 刹车输入管脚极性低(BKP=0) TIM 刹车输入管脚极性高(BKP=1) TIM_AutomaticOutput

TIM_AutomaticOutput 使能或者失能自动输出功能该参数取值见下表。 TIM_AutomaticOutput 描述 TIM_AutomaticOutput_Enable TIM_AutomaticOutput_Disable 自动输出功能使能(AOE=1) 自动输出功能失能(AOE=0) 例:

/* OSSR, OSSI, Automatic Output enable, Break, dead TIM and Lock Level configuration*/ TIM_BDTR

InitTypeDef TIM_BDTRInitStructure;

TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable; TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable; TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_1; TIM_BDTRInitStructure.TIM_DeadTIM = 0x05;

TIM_BDTRInitStructure.TIM_Break = TIM_Break_Enable;

TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;

TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable; TIM_BDTRConfig(TIM1,&TIM_BDTRInitStructure);

10 函数TIM_TimeBaseStructInit

函数 TIM_TimeBaseStructInit TIM_TimeBaseStructInit 函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct) 把 TIM_TimeBaseInitStruct 中的每一个参数按缺省值填入 TIM_TimeBaseInitStruct:指向结构 TIM_TimeBaseInitTypeDef 的指针,待初始化 无 无 无 无 TIM_TimeBaseInitStruct 缺省值 成员 TIM_Period TIM_Prescaler TIM_CKD TIM_CounterMode

缺省值 TIM_Period_Reset_Mask TIM_Prescaler_Reset_Mask TIM_CKD_DIV1 TIM_CounterMode_Up 18

TIM_RepetitionCounter TIM_RepetitionCounter_Reset_Mask 例:

/* The following example illustrates how to initialize a TIM_BaseInitTypeDef structure */

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure; TIM_TimeBaseStructInit(& TIM_TimeBaseInitStructure);

11 函数TIM_OCStructInit

函数 TIM_TimeBaseStructInit

TIM_TimeBaseStructInit 函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct) 把 TIM_OCInitStruct 中的每一个参数按缺省值填入 TIM_OCInitStruct:指向结构 TIM_OCInitTypeDef 的指针,待初始化 无 无 无 无

TIM_OCInitStruct 缺省值 成员 TIM_OCMode TIM_OutputState TIM_OutputNState TIM_Pulse TIM_OCPolarity TIM_OCNPolarity TIM_OCIdleState TIM_OCNIdleState 缺省值 TIM_OCMode_Timing TIM_OutputState_Disable TIM_OutputNState_Disable TIM_Pulse_Reset_Mask TIM_OCPolarity_High TIM_OCNPolarity_High TIM_OCIdleState_Reset TIM_OCNIdleState_Reset 例:

/* The following example illustrates how to initialize a TIM_OCInitTypeDef structure */

TIM_OCInitTypeDef TIM_OCInitStructure; TIM_OCStructInit(& TIM_OCInitStructure);

12 函数TIM_ICStructInit

函数 TIM_ICStructInit 函数名

TIM_ICStructInit 19

函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 TIM_ICInitStruct 缺省值 成员 TIM_Channel TIM_ICPolarity TIM_ICSelection TIM_ICPrescaler TIM_ICFilter void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct) 把 TIM_ICInitStruct 中的每一个参数按缺省值填入 TIM_ICInitStruct:指向结构 TIM_ICInitTypeDef 的指针,待初始化 无 无 无 无 缺省值 TIM_Channel_1 TIM_ICPolarity_Rising TIM_ICSelection_DirectTI TIM_ICPSC_DIV1 0x00 例:

/* The following example illustrates how to initialize aTIM_ICInitTypeDef structure */

TIM_ICInitTypeDef TIM_ICInitStructure; TIM_ICStructInit(& TIM_ICInitStructure);

13 函数TIM_BDTRStructInit

函数 TIM_BDTRStructInit

void TIM_BDTRStructInit 函数名 函数原形 功能描述 输入参数 输出参数 返回值 先决条件 被调用函数 void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct) 把 TIM_BDTRInitStruct 中的每一个参数按缺省值填入 TIM_BDTRInitStruct:指向结构 TIM_BDTRInitTypeDef 的指针,待初始化 无 无 无 无

TIM_BDTRInitStruct 缺省值 成员 TIM_OSSRState TIM_OSSIState TIM_LOCKLevel TIM_DeadTime TIM_Break TIM_BreakPolarity TIM_AutomaticOutput

缺省值 TIM_OSSRState_Disable TIM_OSSIState_Disable TIM_LOCKLevel_OFF 0x00 TIM_Break_Disable TIM_BreakPolarity_Low TIM_AutomaticOutput_Disable 20

例:

/* The following example illustrates how to initialize a TIM_BDTRInitTypeDef structure */

TIM_BDTRInitTypeDef TIM_BDTRInitStructure; TIM_BDTRStructInit(& TIM_BDTRInitStructure);

14 函数TIM_Cmd

函数 TIM_Cmd 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 TIM_Cmd void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState) 使能或者失能 TIMx 外设(写CR_CEN) TIMx:x 可以是 1~17,来选择 TIM 外设 NewState: 外设 TIMx 的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Enables the TIM2 counter */ TIM_Cmd(TIM2, ENABLE);

15 函数TIM_CtrlPWMOutputs

函数 TIM_CtrlPWMOutputs

TIM_CtrlPWMOutputs 函数名 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数 void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx,FunctionalState Newstate) 使能或者失能 TIM x 的主输出(写BDTR_MOE) TIMx:x 可以是1、8、15~17,来选择 TIM 外设 NewState: 外设 TIM 主输出的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Enables the TIM1 peripheral Main Outputs. */

21

TIM_CtrlPWMOutputs(TIM1,ENABLE);

16 函数TIM _ITConfig

函数 TIM_ITConfig

TIM_ITConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输出参数 返回值 先决条件 被调用函数 void TIM_ITConfig(TIM_TypeDef* TIMx, u16 TIM_IT, FunctionalState NewState) 使能或者失能指定的 TIM 中断(写BDTR_DIER) TIMx:x 可以是 1~17,来选择 TIM 外设 TIM_IT:待使能或者失能的 TIM 中断源 参阅 Section:TIM_IT 查阅更多该参数允许取值范围 NewState:TIMx 中断的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 TIM_IT

输入参数 TIM_IT 使能或者失能 TIM 的中断。可以取下表的一个或者多个取值的组合作为该参数的值。

TIM_IT 描述 TIM_IT_Update TIM_IT_CC1 TIM_IT_CC2 TIM_IT_CC3 TIM_IT_CC4 TIM_IT_COM TIM_IT_Trigger TIM_IT_Break TIM 中断源 TIM 捕获/比较 1 中断源 TIM 捕获/比较 2 中断源 TIM 捕获/比较 3 中断源 TIM 捕获/比较 4 中断源 TIM COM 中断源 TIM 触发中断源 TIM 刹车中断源 例:

/* Enables the TIM2 Capture Compare channel 1 Interrupt source */ TIM_ITConfig(TIM2, TIM_IT_CC1, ENABLE );

17 函数TIM_GenerateEvent

函数 TIM_GenerateEvent

TIM_GenerateEvent 函数名 函数原形 功能描述 输入参数 1

void TIM_GenerateEvent(TIM_TypeDef* TIMx, u16 TIM_EventSource) 设置 TIMx 事件由软件产生(写EGR) TIMx:x 可以是1~17,来选择 TIM 外设 22

输入参数 2 输出参数 返回值 先决条件 被调用函数 TIM_EventSource:TIM 软件事件源 参阅 Section:TIM_EventSource 查阅更多该参数允许取值范围 无 无 无 无 TIM_EventSource

TIM_EventSource 选择 TIM 软件事件源。参阅该参数的取值。 TIM_EventSource TIM_EventSource_Update TIM_EventSource_CC1 TIM_EventSource_CC2 TIM_EventSource_CC3 TIM_EventSource_CC4 TIM_EventSource_COM TIM_EventSource_Trigger TIM_EventSource_Break TIM 更新事件源 TIM 捕获比较 1 事件源 TIM 捕获比较 2 事件源 TIM 捕获比较 3 事件源 TIM 捕获比较 4 事件源 TIM COM 事件源 TIM 触发事件源 TIM 刹车事件源 描述 例:

/* Selects the Trigger software Event generation for TIM2 */ TIM_GenerateEvent(TIM2, TIM_EventSource_Trigger);

18 函数TIM_DMAConfig

函数 TIM_DMAConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输出参数 返回值 先决条件 被调用函数

TIM_DMAConfig void TIM_DMAConfig(TIM_TypeDef* u16TIM_DMABurstLength) 设置 TIMx 的 DMA 接口(写DCR) TIMx:x 可以是1~5、8、15~17,来选择 TIM 外设 TIM_DMABase:DMA 传输起始地址 参阅 Section:TIM_ DMABase 查阅更多该参数允许取值范围 TIM_DMABurstLength:DMA 连续传送长度 参阅 Section:TIM_ DMABurstLength 查阅更多该参数允许取值范围 无 无 无 无 TIMx,u8 TIM_DMABase,TIM_DMABase

TIM_DMABase 设置 DMA 传输起始地址。可以取下表的值。 TIM_DMABase

23

描述 TIM_DMABase_CR1 TIM_DMABase_CR2 TIM_DMABase_SMCR TIM_DMABase_DIER TIM_DMABase_SR TIM_DMABase_EGR TIM_DMABase_CCMR1 TIM_DMABase_CCMR2 TIM_DMABase_CCER TIM_DMABase_CNT TIM_DMABase_PSC TIM_DMABase_ARR TIM_DMABase_RCR TIM_DMABase_CCR1 TIM_DMABase_CCR2 TIM_DMABase_CCR3 TIM_DMABase_CCR4 TIM_DMABase_BDTR TIM_DMABase_DCR TIM CR1 寄存器作为 DMA 传输起始 TIM CR2 寄存器作为 DMA 传输起始 TIM SMCR 寄存器作为 DMA 传输起始 TIM DIER 寄存器作为 DMA 传输起始 TIM SR 寄存器作为 DMA 传输起始 TIM EGR 寄存器作为 DMA 传输起始 TIM CCMR1 寄存器作为 DMA 传输起始 TIM CCMR2 寄存器作为 DMA 传输起始 TIM CCER 寄存器作为 DMA 传输起始 TIM CNT 寄存器作为 DMA 传输起始 TIM PSC 寄存器作为 DMA 传输起始 TIM APR 寄存器作为 DMA 传输起始 TIM RCR 寄存器作为 DMA 传输起始 TIM CCR1 寄存器作为 DMA 传输起始 TIM CCR2 寄存器作为 DMA 传输起始 TIM CCR3 寄存器作为 DMA 传输起始 TIM CCR4 寄存器作为 DMA 传输起始 TIM BDTR 寄存器作为 DMA 传输起始 TIM DCR 寄存器作为 DMA 传输起始 TIM_DMABurstLength

TIM_DMABurstLength 设置 DMA 连续传送长度。可以取下表的值。 TIM_DMABurstLength 描述 TIM_DMABurstLength_1Transfer TIM_DMABurstLength_2Transfers TIM_DMABurstLength_3Transfers TIM_DMABurstLength_4Transfers TIM_DMABurstLength_5Transfers TIM_DMABurstLength_6Transfers TIM_DMABurstLength_7Transfers TIM_DMABurstLength_8Transfers TIM_DMABurstLength_9Transfers TIM_DMABurstLength_10Transfers TIM_DMABurstLength_11Transfers TIM_DMABurstLength_12Transfers TIM_DMABurstLength_13Transfers TIM_DMABurstLength_14Transfers TIM_DMABurstLength_15Transfers TIM_DMABurstLength_16Transfers TIM_DMABurstLength_17Transfers TIM_DMABurstLength_18 Transfers TIM DMA 连续传送长度 1 字 TIM DMA 连续传送长度 2 字 TIM DMA 连续传送长度 3 字 TIM DMA 连续传送长度 4 字 TIM DMA 连续传送长度 5 字 TIM DMA 连续传送长度 6 字 TIM DMA 连续传送长度 7 字 TIM DMA 连续传送长度 8 字 TIM DMA 连续传送长度 9 字 TIM DMA 连续传送长度 10 字 TIM DMA 连续传送长度 11 字 TIM DMA 连续传送长度 12 字 TIM DMA 连续传送长度 13 字 TIM DMA 连续传送长度 14 字 TIM DMA 连续传送长度 15 字 TIM DMA 连续传送长度 16 字 TIM DMA 连续传送长度 17 字 TIM DMA 连续传送长度 18 字 例:

/* Configures the TIM2 DMA Interface to transfer 1 byte and to use the CCR1 as base address */

TIM_DMAConfig(TIM2, TIM_DMABase_CCR1, TIM_DMABurstLength_1Byte)

24

19 函数TIM_DMACmd

函数 TIM_DMACmd 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输出参数 返回值 先决条件 被调用函数 TIM_DMACmd void TIM_DMACmd(TIM_TypeDef* TIMx, TIM_DMASource,FunctionalState Newstate) u16使能或者失能指定的 TIMx 的 DMA 请求(写DIER) TIMx:x 可以是1~5、8、15~17,来选择 TIM 外设 TIM_DMASource:待使能或者失能的 TIM 中断源 参阅 Section:TIM_DMASource 查阅更多该参数允许取值范围 NewState:DMA 请求的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 TIM_DMASource

输入参数 TIM_DMASource 使能或者失能 TIM 的中断。可以取下表的值。 TIM_DMASource 描述 TIM_DMA_Update TIM_DMA_CC1 TIM_DMA_CC2 TIM_DMA_CC3 TIM_DMA_CC4 TIM_DMA_COM TIM_DMA_Trigger TIM 更新 DMA 源 TIM 捕获/比较 1DMA 源 TIM 捕获/比较 2DMA 源 TIM 捕获/比较 3DMA 源 TIM 捕获/比较 4DMA 源 TIM COM DMA 源 TIM 触发 DMA 源 例:

/* TIM2 Capture Compare 1 DMA Request Configuration */ TIM_DMACmd(TIM2, TIM_DMA_CC1, ENABLE);

20 函数TIM_InternalClockConfig

函数 TIM_InternalClockConfig

TIM_InternalClockConfig 函数名 函数原形 功能描述 输入参数 输出参数

void TIM_DMACmd(TIM_TypeDef* TIMx) 关闭从模式,使用内部时钟(SMCR_SMS=000) TIMx:x 可以是 1~5、8、9、12、15,来选择 TIM 外设 无 25

返回值 先决条件 被调用函数 无 无 无 例:

/* Selects the internal clock for TIM2 */ TIM_InternalClockConfig(TIM2);

21 函数TIM_ITRxExternalClockConfig

函数 TIM_ITRxExternalClockConfig

TIM_ITRxExternalClockConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIM_InputTriggerSource) 设置 TIMx从模式使用外部时钟(ITR0~ITR3) TIMx:x 可以是1~5、9、12、15,来选择 TIM 外设 TIM_InputTriggerSource:输入触发源 参阅 Section:TIM_InputTriggerSource 查阅更多该参数允许取值范围 无 无 无 无 TIMx, u16 TIM_InputTriggerSource

TIM_InputTriggerSource 选择 TIM 输入触发。参阅该参数的取值。 TIM_InputTriggerSource TIM_TS_ITR0 TIM_TS_ITR1 TIM_TS_ITR2 TIM_TS_ITR3 TIM 内部触发 0 TIM 内部触发 1 TIM 内部触发 2 TIM 内部触发 3 描述 例:

/* TIM2 internal trigger 3 used as clock source */ TIM_ITRxExternalClockConfig(TIM2, TIM_TS_ITR3);

22 函数TIM_TIxExternalClockConfig

函数 TIM_TIxExternalClockConfig

TIM_TIxExternalClockConfig 函数名 函数原形 void TIM_TIxExternalClockConfig(TIM_TypeDef* u16 26

TIMx,

TIM_TIxExternalCLKSource, u8 TIM_ICPolarity, u8 ICFilter) 功能描述 输入参数 1 输入参数 2 输入参数 3 输入参数 4 输出参数 返回值 先决条件 被调用函数 设置 TIMx 从模式使用外部时钟(TI1FED 、TI1FP1、TI2FP2) TIMx:x 可以是1~5、9、12、15,来选择 TIM 外设 TIM_ TIxExternalCLKSource:触发源 参阅 Section:TIM_ TIxExternalCLKSource 查阅更多该参数允许取值范围 TIM_ ICPolarity:指定的 TI 极性 参阅 Section:TIM_ ICPolarity 查阅更多该参数允许取值范围 ICFilter:指定的输入比较滤波器。该参数取值在 0x0 和 0xF 之间。 无 无 无 无 TIM_TIxExternalCLKSource

TIM_TIxExternalCLKSource选择TIMx外部时钟源。 参阅该参数的取值。 TIM_TIxExternalCLKSource 描述 TIM_TS_TI1FP1 TIM_TS_TI1FP2 TIM_TS_TI1F_ED TIM IC1 连接到 TI1 TIM IC2 连接到 TI2 TIM IC1 连接到 TI1:使用边沿探测 TIM_ICPolarity

TIM_ICPolarity输入活动沿。该参数取值见下表。

TIM_ICPolarity TIM_ICPolarity_Rising TIM 输入捕获上升沿 TIM_ICPolarity_Falling TIM 输入捕获下降沿 描述 TIM_ICFilter

TIM_ICFilter选择输入比较滤波器。该参数取值在0x0和0xF之间。

例:

/* Selects the TI1 as clock for TIM2: the external clock is connected to TI1 input pin, the rising edge is the active edge and no filter sampling is done (ICFilter = 0) */

TIM_TIxExternalClockConfig(TIM2, TIM_TS_TI1FP1, TIM_ICPolarity_Rising, 0);

23 函数TIM_ETRClockMode1Config

函数 TIM_ETRClockMode1Config

TIM_ETRClockMode1Config 函数名 函数原形 功能描述 输入参数 1

void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, TIM_ExtTRGPrescaler, u16 TIM_ExtTRGPolarity, u16 ExtTRGFilter) 配置 TIMx 从模式使用外部时钟模式 1(ETRF) TIMx:x 可以是1~5、8,来选择 TIM 外设 27

u16 输入参数 2 输入参数 3 输入参数 4 输出参数 返回值 先决条件 被调用函数 TIM_ExtTRGPrescaler:外部触发预分频 参阅 Section:TIM_ExtTRGPrescaler 查阅更多该参数允许取值范围 TIM_ExtTRGPolarity:外部时钟极性 参阅 Section:TIM_ExtTRGPolarity 查阅更多该参数允许取值范围 ExtTRGFilter:外部触发滤波器。该参数取值在 0x0 和 0xF 之间。 无 无 无 无 TIM_ExtTRGPrescaler

TIM_ExtTRGPrescaler设置TIMx外部触发预分频。参阅该参数的取值。 TIM_ExtTRGPrescaler 描述 TIM_ExtTRGPSC_OFF TIM_ExtTRGPSC_DIV2 TIM_ExtTRGPSC_DIV4 TIM_ExtTRGPSC_DIV8 TIM ETRP 预分频 OFF TIM ETRP 频率除以 2 TIM ETRP 频率除以 4 TIM ETRP 频率除以 8 TIM_ExtTRGPolarity

TIM_ExtTRGPolarity设置TIMx外部触发极性。参阅该参数的取值。 TIM_ExtTRGPolarity 描述 TIM_ExtTRGPolarity_Inverted TIM_ExtTRGPolarity_NonInverted TIM 外部触发极性翻转:低电平或下降沿有效 TIM 外部触发极性非翻转:高电平或上升沿有效 例:

/* Selects the external clock Mode 1 for TIM2: the external clock is connected to ETR input pin, the rising edge is the active edge, no filter sampling is done (ExtTRGFilter = 0) and the prescaler is fixed to TIM_ExtTRGPSC_DIV2 */ TIM_ExternalCLK1Config(TIM2,

TIM_ExtTRGPSC_DIV2,TIM_ExtTRGPolarity_NonInverted, 0x0);

24 函数TIM_ETRClockMode2Config

函数 TIM_ETRClockMode2Config 函数名 函数原形 功能描述 输入参数1 输入参数2 输入参数3 输入参数4

TIM_ETRClockMode2Config void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, u16 TIM_ExtTRGPrescaler, u16 TIM_ExtTRGPolarity, u16 ExtTRGFilter) 配置TIMx外部时钟模式2(ETRF) TIMx:x可以是1~5、8,来选择TIM外设 TIM_ExtTRGPrescaler:外部触发预分频 参阅Section:TIM_ExtTRGPrescaler查阅更多该参数允许取值范围 TIM_ExtTRGPolarity:外部时钟极性 参阅Section:TIM_ExtTRGPolarity查阅更多该参数允许取值范围 ExtTRGFilter:外部触发滤波器。该参数取值在0x0和0xF之间。 28

输出参数 返回值 先决条件 被调用函数 无 无 无 无 TIM_ExtTRGPrescaler

TIM_ExtTRGPrescaler设置TIMx外部触发预分频。参阅该参数的取值。 TIM_ExtTRGPrescaler 描述 TIM_ExtTRGPSC_OFF TIM_ExtTRGPSC_DIV2 TIM_ExtTRGPSC_DIV4 TIM_ExtTRGPSC_DIV8 TIM ETRP 预分频 OFF TIM ETRP 频率除以 2 TIM ETRP 频率除以 4 TIM ETRP 频率除以 8 TIM_ExtTRGPolarity

TIM_ExtTRGPolarity设置TIMx外部触发极性。参阅该参数的取值。 TIM_ExtTRGPolarity 描述 TIM_ExtTRGPolarity_Inverted TIM_ExtTRGPolarity_NonInverted TIM 外部触发极性翻转:低电平或下降沿有效 TIM 外部触发极性非翻转:高电平或上升沿有效 例:

/* Selects the external clock Mode 2 for TIM2: the external clock is connected to ETR input pin, the rising edge is the active edge, no filter sampling is done (ExtTRGFilter = 0) and the prescaler is fixed to TIM_ExtTRGPSC_DIV2 */ TIM_ExternalCLK2Config(TIM2, TIM_ExtTRGPSC_DIV2, TIM_ExtTRGPolarity_NonInverted, 0x0);

25 函数TIM_ETRConfig

函数 TIM_ETRConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输入参数 4 输出参数 返回值 先决条件 被调用函数

29

TIM_ETRConfig void TIM_ETRConfig(TIM_TypeDef* TIMx, TIM_ExtTRGPrescaler, u16 TIM_ExtTRGPolarity, u8 ExtTRGFilter) 配置 TIMx 外部触发ETR参数(预分频、时钟极性、滤波器) TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_ExtTRGPrescaler:外部触发预分频 参阅 Section:TIM_ExtTRGPrescaler 查阅更多该参数允许取值范围 TIM_ExtTRGPolarity:外部时钟极性 参阅 Section:TIM_ExtTRGPolarity 查阅更多该参数允许取值范围 ExtTRGFilter:外部触发滤波器。该参数取值在 0x0 和 0xF 之间。 无 无 无 无 u16

TIM_ExtTRGPrescaler

TIM_ExtTRGPrescaler设置TIMx外部触发预分频。参阅该参数的取值。 TIM_ExtTRGPrescaler 描述 TIM_ExtTRGPSC_OFF TIM_ExtTRGPSC_DIV2 TIM_ExtTRGPSC_DIV4 TIM_ExtTRGPSC_DIV8 TIM ETRP 预分频 OFF TIM ETRP 频率除以 2 TIM ETRP 频率除以 4 TIM ETRP 频率除以 8 TIM_ExtTRGPolarity

TIM_ExtTRGPolarity设置TIMx外部触发极性。参阅该参数的取值。 TIM_ExtTRGPolarity 描述 TIM_ExtTRGPolarity_Inverted TIM_ExtTRGPolarity_NonInverted TIM 外部触发极性翻转:低电平或下降沿有效 TIM 外部触发极性非翻转:高电平或上升沿有效 例:

/* Configure the External Trigger (ETR) for TIM2: the rising edge is the active edge, no filter sampling is done (ExtTRGFilter = 0) and the prescaler is fixed to TIM_ExtTRGPSC_DIV2 */ TIM_ExternalCLK2Config(TIM2, TIM_ExtTRGPSC_DIV2, TIM_ExtTRGPolarity_NonInverted, 0x0);

26 函数TIM_PrescalerConfig

函数 TIM_PrescalerConfig

TIM_PrescalerConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_PrescalerConfig(TIM_TypeDef* TIM_PSCReloadMode) TIMx:x 可以是1~17,来选择 TIM 外设 TIM_PSCReloadMode:预分频重载模式 参阅 Section:TIM_PSCReloadMode 查阅更多该参数允许取值范围 无 无 无 无 TIMx, u16 Prescaler,u16 设置 TIMx 预分频+立即装载/等待更新(写PSC和EGR_UG) TIM_PSCReloadMode

TIM_PSCReloadMode选择预分频重载模式。参阅该参数的取值。 TIM_PSCReloadMode TIM_PSCReloadMode_Update TIM_PSCReloadMode_Immediate 描述 TIM 预分频值在更新事件装入 TIM 预分频值即时装入 例:

/* Configures the TIM2 new Prescaler value */

30

u16 TIMPrescaler = 0xFF00; TIM_PSCReloadMode_Immediate);

TIM_PrescalerConfig(TIM2, TIMPrescaler,

27 函数TIM_CounterModeConfig

函数 TIM_CounterModeConfig

TIM_CounterModeConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_CounterModeConfig(TIM_TypeDef* TIMx, u16 TIM_CounterMode) 设置 TIMx 计数器模式(写CR1_DIR和CR1_CMS) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_CounterMode:待使用的计数器模式 参阅 Section:TIM_CounterMode 查阅更多该参数允许取值范围 无 无 无 无 TIM_CounterMode

TIM_CounterMode 选择了计数器模式。该参数取值见下表。 TIM_CounterMode TIM_CounterMode_Up TIM_CounterMode_Down TIM_CounterMode_CenterAligned1 TIM_CounterMode_CenterAligned2 TIM_CounterMode_CenterAligned3 描述 TIM 向上计数模式 TIM 向下计数模式 TIM 中央对齐模式 1 计数模式 TIM 中央对齐模式 2 计数模式 TIM 中央对齐模式 3 计数模式 例:

/* Selects the Center Aligned counter Mode 1 for the TIM2 */ TIM_CounterModeConfig(TIM2, TIM_Counter_CenterAligned1);

28 函数TIM_SelectInputTrigger

函数 TIM_SelectInputTrigger

TIM_SelectInputTrigger 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件

void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, u16 TIM_InputTriggerSource) 选择 TIMx 输入触发源(ITR0~ITR3、TI1FED 、TI1FP1、TI2FP2、ETRF) TIMx:x 可以是1~5、8、9、12、15,来选择 TIM 外设 TIM_InputTriggerSource:输入触发源 参阅 Section:TIM_InputTriggerSource 查阅更多该参数允许取值范围 无 无 无 31

被调用函数 无 TIM_InputTriggerSource

TIM_InputTriggerSource选择TIMx输入触发源。参阅该参数的取值。 TIM_InputTriggerSource 描述 TIM_TS_ITR0 TIM_TS_ITR1 TIM_TS_ITR2 TIM_TS_ITR3 TIM_TS_TI1F_ED TIM_TS_TI1FP1 TIM_TS_TI2FP2 TIM_TS_ETRF TIM 内部触发 0 TIM 内部触发 1 TIM 内部触发 2 TIM 内部触发 3 TIM TL1 边沿探测器 TIM 经滤波定时器输入 1 TIM 经滤波定时器输入 2 TIM 外部触发输入 例:

/* Selects the Internal Trigger 3 as input trigger fot TIM2 */ void TIM_SelectInputTrigger(TIM2, TIM_TS_ITR3);

29 函数TIM_EncoderInterfaceConfig

函数 TIM_EncoderInterfaceConfig

TIM_EncoderInterfaceConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输入参数 4 输出参数 返回值 先决条件 被调用函数 void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, u8 TIM_EncoderMode, u8 TIM_IC1Polarity, u8 TIM_IC2Polarity) 设置 TIMx 从模式使用编码器功能 TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_EncoderMode:触发源 参阅 Section:TIM_EncoderMode 查阅更多该参数允许取值范围 TIM_ IC1Polarity:TI1 极性 参阅 Section:TIM_ ICPolarity 查阅更多该参数允许取值范围 TIM_ IC2Polarity:TI2 极性 参阅 Section:TIM_ ICPolarity 查阅更多该参数允许取值范围 无 无 无 无 TIM_EncoderMode

TIM_EncoderMode选择TIMx编码模式。参阅该参数的取值。 TIM_EncoderMode TIM_EncoderMode_TI1 TIM_EncoderMode_TI1 TIM_EncoderMode_TI12

描述 使用 TIM 编码模式 1 使用 TIM 编码模式 2 使用 TIM 编码模式 3 32

TIM_IC1Polarity, TIM_IC2Polarity

TIM_ICPolarity输入活动沿。该参数取值见下表。

TIM_ICPolarity TIM_ICPolarity_Rising TIM 输入捕获上升沿 TIM_ICPolarity_Falling TIM 输入捕获下降沿

描述 例:

/* Configures the encoder mode TI1 for TIM2 */

TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI1,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);

30 函数TIM_ForcedOC1Config

函数 TIM_ForcedOC1Config

TIM_ForcedOC1Config 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) 置 TIMx 输出 1 为活动或者非活动电平(强制OC1REF为0或1) TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_ForcedAction:输出信号的设置动作 参阅 Section:TIM_ForcedAction 查阅更多该参数允许取值范围 无 无 无 无 TIM_ForcedAction

输出信号的设置动作取值见下表。

TIM_ForcedAction TIM_ForcedAction_Active TIM_ForcedAction_InActive 描述 置为 OCxREF 上的活动电平(输出高电平) 置为 OCxREF 上的非活动电平(输出低电平) 例:

/* Forces the TIM2 Output Compare 1 signal to the active level */ TIM_ForcedOC1Config(TIM2, TIM_ForcedAction_Active);

31 函数TIM_ForcedOC2Config

函数 TIM_ForcedOC2Config

TIM_ForcedOC2Config 函数名

33

函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) 置 TIMx 输出 2 为活动或者非活动电平(强制OC2REF为0或1) TIMx:x 可以是 1~5、8、9、12、15,来选择 TIM 外设 TIM_ForcedAction:输出信号的设置动作 参阅 Section:TIM_ForcedAction 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Forces the TIM2 Output Compare 2 signal to the active level */ TIM_ForcedOC2Config(TIM2, TIM_ForcedAction_Active);

32 函数TIM_ForcedOC3Config

函数 TIM_ForcedOC3Config

TIM_ForcedOC3Config 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) 置 TIMx 输出 3 为活动或者非活动电平(强制OC3REF为0或1) TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_ForcedAction:输出信号的设置动作 参阅 Section:TIM_ForcedAction 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Forces the TIM2 Output Compare 3 signal to the active level */ TIM_ForcedOC3Config(TIM2, TIM_ForcedAction_Active);

33 函数TIM_ForcedOC4Config

函数 TIM_ForcedOC4Config

TIM_ForcedOC4Config 函数名 函数原形 功能描述 输入参数 1 输入参数 2 void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction) 置 TIMx 输出 4 为活动或者非活动电平(强制OC4REF为0或1) TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_ForcedAction:输出信号的设置动作 参阅 Section:TIM_ForcedAction 查阅更多该参数允许取值范围 34

输出参数 返回值 先决条件 被调用函数 无 无 无 无 例:

/* Forces the TIM2 Output Compare 4 signal to the active level */ TIM_ForcedOC4Config(TIM2, TIM_ForcedAction_Active);

34 函数TIM_ARRPreloadConfig

函数 TIM_ARRPreloadConfig

TIM_ARRPreloadConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState Newstate) 使能或者失能 TIMx 在 ARR 上的预装载寄存器(等待更新/立即生效CR1_ARPE) TIMx:x 可以是1~17,来选择 TIM 外设 NewState: TIM_CR1 寄存器 ARPE 位的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Enables the TIM2 Preload on ARR Register */ TIM_ARRPreloadConfig(TIM2, ENABLE);

35 函数TIM_SelectCOM

函数 TIM_SelectCOM

TIM_SelectCOM 函数名 void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState Newstate) 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数

选择 TIM 外设的通讯事件(设置CR2_CCUS,仅对互补通道有效) TIMx:x 可以是1、8、15、16、17,来选择 TIM 外设 NewState: 通讯事件的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 35

例:

/* Selects the TIM Commutation event */ TIM_SelectCOM(TIM1,ENABLE);

36 函数TIM_SelectCCDMA

函数 TIM_SelectCCDMA

TIM_SelectCCDMA 函数名 void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState Newstate) 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 选择 TIMx 外设的捕获比较 DMA 源(使能/失能CR2_CCDS) TIMx:x 可以是 1~5、8、15~17,来选择 TIM 外设 NewState: 捕获比较 DMA 源的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Selects the TIM2 Capture Compare DMA source */ TIM_SelectCCDMA(TIM2, ENABLE);

37 函数TIM_CCPreloadControl

函数 TIM_CCPreloadControl

TIM_CCPreloadControl 函数名 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数 void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState Newstate) 设置TIM x 的CC x E、CC xNE、OC xM预装载控制位(设置CR2_CCPC,仅对互补通道有效) TIMx:x 可以是 1~5、8、15,来选择 TIM 外设 NewState: 捕获比较 DMA 源的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Selects the TIM1 Capture Compare Preload Control */ TIM_CCPreloadControl(TIM1,ENABLE);

36

38 函数TIM_OC1PreloadConfig

函数 TIM_OC1PreloadConfig

TIM_OC1PreloadConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 使能或者失能 TIMx 在 CCR1 上的预装载(设置CCMR1_OC1PE) TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_OCPreload:输出比较预装载状态 参阅 Section:TIM_OCPreload 查阅更多该参数允许取值范围 无 无 无 无 TIM_OCPreload

输出比较预装载状态可以使能或者失能如下表。

TIM_OCPreload TIM_OCPreload_Enable TIM_OCPreload_Disable 描述 TIMx 在 CCR1 上的预装载寄存器使能 TIMx 在 CCR1 上的预装载寄存器失能 例:

/* Enables the TIM2 Preload on CC1 Register */ TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);

39 函数TIM_OC2PreloadConfig

函数 TIM_OC2PreloadConfig

TIM_OC2PreloadConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 使能或者失能 TIMx 在 CCR2 上的预装载(设置CCMR1_OC2PE) TIMx:x 可以是 1~5、8、9、12、15,来选择 TIM 外设 TIM_OCPreload:输出比较预装载状态 参阅 Section:TIM_OCPreload 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enables the TIM2 Preload on CC2 Register */ TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);

37

40 函数TIM_OC3PreloadConfig

函数 TIM_OC3PreloadConfig

TIM_OC3PreloadConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 使能或者失能 TIMx 在 CCR3 上的预装载(设置CCMR2_OC3PE) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCPreload:输出比较预装载状态 参阅 Section:TIM_OCPreload 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enables the TIM2 Preload on CC3 Register */ TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);

41 函数TIM_OC4PreloadConfig

函数 TIM_OC4PreloadConfig

TIM_OC4PreloadConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, u16 TIM_OCPreload) 使能或者失能 TIMx 在 CCR4 上的预装载(设置CCMR2_OC4PE) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCPreload:输出比较预装载状态 参阅 Section:TIM_OCPreload 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enables the TIM2 Preload on CC4 Register */ TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);

42 函数TIM_OC1FastConfig

函数 TIM_OC1FastConfig

TIM_OC1FastConfig 函数名

38

函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC1FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) 设置 TIMx 捕获比较 1 快速特征(设置CCMR1_OC1FE) TIMx:x 可以是 1~5、8~17,来选择 TIM 外设 TIM_OCFast:输出比较快速特征状态 参阅 Section:TIM_OCFast 查阅更多该参数允许取值范围 无 无 无 无 TIM_OCFast

输出比较快速特征性能可以使能或者失能如下表。

TIM_OCFast TIM_OCFast_Enable TIM_OCFast_Disable 描述 TIMx 输出比较快速特征性能使能 TIMx 输出比较快速特征性能失能 例:

/* Use the TIM2 OC1 in fast Mode */

TIM_OC1FastConfig(TIM2, TIM_OCFast_Enable);

43 函数TIM_OC2FastConfig

函数 TIM_OC2FastConfig

TIM_OC2FastConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC2FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) 设置 TIMx 捕获比较 2 快速特征(设置CCMR1_OC2FE) TIMx:x 可以是1~5、8、9、12、15,来选择 TIM 外设 TIM_OCFast:输出比较快速特征状态 参阅 Section:TIM_OCFast 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Use the TIM2 OC2 in fast Mode */

TIM_OC2FastConfig(TIM2, TIM_OCFast_Enable);

44 函数TIM_OC3FastConfig

函数 TIM_OC3FastConfig

39

函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 TIM_OC3FastConfig void TIM_OC3FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) 设置 TIMx 捕获比较 3 快速特征(设置CCMR2_OC3FE) TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_OCFast:输出比较快速特征状态 参阅 Section:TIM_OCFast 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Use the TIM2 OC3 in fast Mode */

TIM_OC3FastConfig(TIM2, TIM_OCFast_Enable);

45 函数TIM_OC4FastConfig

函数 TIM_OC4FastConfig

TIM_OC4FastConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_OC4FastConfig(TIM_TypeDef* TIMx, u16 TIM_OCFast) 设置 TIMx 捕获比较 4 快速特征(设置CCMR2_OC4FE) TIMx:x 可以是 1~5、8,来选择 TIM 外设 TIM_OCFast:输出比较快速特征状态 参阅 Section:TIM_OCFast 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Use the TIM2 OC4 in fast Mode */

TIM_OC4FastConfig(TIM2, TIM_OCFast_Enable);

46 函数TIM_ClearOC1Ref

函数 TIM_ClearOC1Ref 函数名 函数原形 功能描述 输入参数 1 输入参数 2

TIM_ClearOC1Ref void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear) 在一个外部事件时清除或者保持 OCREF1 信号(设置CCMR1_OC1CE) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCClear:输出比较清除使能位状态 40

输出参数 返回值 先决条件 被调用函数 参阅 Section:TIM_OCClear 查阅更多该参数允许取值范围 无 无 无 无 TIM_OCClear

输出比较清除使能位的值列举如下表。

TIM_OCClear TIM_OCClear_Enable TIM_OCClear_Disable 描述 TIMx 输出比较清除使能 TIMx 输出比较清除失能 例:

/* Enable the TIM2 Channel1 Ouput Compare Refence clear bit */ TIM_ClearOC1Ref(TIM2, TIM_OCClear_Enable);

47 函数TIM_ClearOC2Ref

函数 TIM_ClearOC2Ref 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 TIM_ClearOC2Ref void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear) 在一个外部事件时清除或者保持 OCREF2 信号(设置CCMR1_OC2CE) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCClear:输出比较清除使能位状态 参阅 Section:TIM_OCClear 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enable the TIM2 Channel2 Ouput Compare Refence clear bit */ TIM_ClearOC2Ref(TIM2, TIM_OCClear_Enable);

48 函数TIM_ClearOC3Ref

函数 TIM_ClearOC3Ref

TIM_ClearOC3Ref 函数名 void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear) 函数原形 功能描述 输入参数 1

在一个外部事件时清除或者保持 OCREF3 信号(设置CCMR2_OC3CE) TIMx:x 可以是1~5、8,来选择 TIM 外设 41

输入参数 2 输出参数 返回值 先决条件 被调用函数 TIM_OCClear:输出比较清除使能位状态 参阅 Section:TIM_OCClear 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enable the TIM2 Channel3 Ouput Compare Refence clear bit */ TIM_ClearOC3Ref(TIM2, TIM_OCClear_Enable);

49 函数TIM_ClearOC4Ref

函数 TIM_ClearOC4Ref

TIM_ClearOC4Ref 函数名 void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, u16 TIM_OCClear) 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 在一个外部事件时清除或者保持 OCREF4 信号(设置CCMR2_OC4CE) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCClear:输出比较清除使能位状态 参阅 Section:TIM_OCClear 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Enable the TIM2 Channel4 Ouput Compare Refence clear bit */ TIM_ClearOC4Ref(TIM2, TIM_OCClear_Enable);

50 函数TIM_OC1PolarityConfig

函数 TIM_OC1PolarityConfig

TIM_OC1PolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件

void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) 设置 TIMx 通道 1 极性(设置CCER_CC1P) TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_OCPolarity:输出比较极性 参阅 Section:TIM_OCPolarity 查阅更多该参数允许取值范围 无 无 无 42

被调用函数 无 TIM_OCPolarity

TIM_OCPolarity输出极性。该参数取值见下表。 TIM_OCPolarity TIM_OCPolarity_High TIM_OCPolarity_Low 描述 TIM 输出比较极性高(CCxP=0) TIM 输出比较极性低(CCxP=1) 例:

/* Selects the Polarity high for TIM2 channel 1 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High);

51 函数TIM_OC1NPolarityConfig

函数 TIM_OC1NPolarityConfig

TIM_OC1NPolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数 void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity) 设置 TIM x 通道 1N 极性(设置CCER_CC1NP) TIMx:x 可以是1、8、15~17,来选择 TIM 外设 TIM_OCNPolarity:输出比较极性 参阅 Section:TIM_OCNPolarity 查阅更多该参数允许取值范围 无 无 无 无 TIM_OCNPolarity

TIM_OCNPolarity互补输出极性。该参数取值见下表。 TIM_OCNPolarity TIM_OCNPolarity_High TIM_OCNPolarity_Low 描述 TIM 输出比较 N 极性高(CCxNP=0) TIM 输出比较 N 极性低(CCxNP=1) 例:

/* Selects the Polarity high for TIM1 channel 1N output compare */ TIM_OC1NPolarityConfig(TIM1,TIM_OCNPolarity_High);

52 函数TIM_OC2PolarityConfig

函数 TIM_OC2PolarityConfig

TIM_OC2PolarityConfig 函数名 函数原形

void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) 43

功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 设置 TIMx 通道 2 极性(设置CCER_CC2P) TIMx:x 可以是 1~5、8、9、12、15,来选择 TIM 外设 TIM_OCPolarity:输出比较极性 参阅 Section:TIM_OCPolarity 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Selects the Polarity high for TIM2 channel 2 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High);

53 函数TIM_OC2NPolarityConfig

函数 TIM_OC2NPolarityConfig

TIM_OC2NPolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数 void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity) 设置 TIM x 通道 2N 极性(设置CCER_CC2NP) TIMx:x 可以是1、8,来选择 TIM 外设 TIM_OCNPolarity:输出比较极性 参阅 Section:TIM_OCNPolarity 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Selects the Polarity high for TIM1 channel 2N output compare */ TIM_OC2NPolarityConfig(TIM1,TIM_OCNPolarity_High);

54 函数TIM_OC3PolarityConfig

函数 TIM_OC1PolarityConfig

TIM_OC3PolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数

void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) 设置 TIMx 通道 3 极性(设置CCER_CC3P) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCPolarity:输出比较极性 参阅 Section:TIM_OCPolarity 查阅更多该参数允许取值范围 无 44

返回值 先决条件 被调用函数 无 无 无 例:

/* Selects the Polarity high for TIM2 channel 3 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High);

55 函数TIM_OC3NPolarityConfig

函数 TIM_OC3NPolarityConfig

TIM_OC1NPolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数2 输出参数 返回值 先决条件 被调用函数 void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCNPolarity) 设置 TIM x 通道 3N 极性(设置CCER_CC3NP) TIMx:x 可以是1、8,来选择 TIM 外设 TIM_OCNPolarity:输出比较极性 参阅 Section:TIM_OCNPolarity 查阅更多该参数允许取值范围 无 无 无 无 例:

/* Selects the Polarity high for TIM1 channel 3N output compare */ TIM_OC3NPolarityConfig(TIM1,TIM_OCNPolarity_High);

56 函数TIM_OC4PolarityConfig

函数 TIM_OC4PolarityConfig

TIM_OC4PolarityConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 例:

45

void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, u16TIM_OCPolarity) 设置 TIMx 通道 4 极性(设置CCER_CC4P) TIMx:x 可以是1~5、8,来选择 TIM 外设 TIM_OCPolarity:输出比较极性 参阅 Section:TIM_OCPolarity 查阅更多该参数允许取值范围 无 无 无 无

/* Selects the Polarity high for TIM2 channel 4 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High);

57 函数TIM_CCxCmd

函数 TIM_CCxCmd 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输入参数 3 输出参数 返回值 先决条件 TIM_CCxCmd void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx) 使能或者失能 TIM 捕获比较通道 x(设置通道x的CCER_CCxE) TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_Channel:TIM 通道 参阅 Section:TIM_Channel 查阅更多该参数允许取值范围 TIM_CCx: TIM 通道 CCxE 位的新状态 这个参数可以取:TIM_CCx_Enable或者TIM_CCx_Disable 无 无 无 被调用函数 无 TIM_Channel

TIM_Channel 选择通道。该参数取值见下表。 TIM_Channel TIM_Channel_1 使用 TIM 通道 1 TIM_Channel_2 使用 TIM 通道 2 TIM_Channel_3 使用 TIM 通道 3 TIM_Channel_4 使用 TIM 通道 4 例:

/* Enables the TIM1 channel 4 */

TIM_CCxCmd(TIM1,TIM_Channel_4, ENABLE);

描述 58 函数TIM_CCxNCmd

函数 TIM_CCxNCmd 函数名 函数原形 功能描述 输入参数 1 输入参数 2 TIM_CCxNCmd void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCxN) 使能或者失能 TIM 捕获比较通道 xN(设置通道x的CCER_CCxNE) TIMx:x 可以是1、8、15~17,来选择 TIM 外设 TIM_Channel:TIM 通道 参阅 Section:TIM_Channel 查阅更多该参数允许取值范围 46

输入参数 3 输出参数 返回值 先决条件 TIM_CCxN: TIM 通道 CCxNE 位的新状态 这个参数可以取:TIM_CCxN_Enable或者TIM_CCxN_Disable 无 无 无 无 被调用函数 TIM_Channel

TIM_Channel 选择通道。该参数取值见下表。 TIM_Channel TIM_Channel_1 使用 TIM 通道 1 TIM_Channel_2 使用 TIM 通道 2 TIM_Channel_3 使用 TIM 通道 3 TIM_Channel_4 使用 TIM 通道 4 描述 例:

/* Enables the TIM1 channel 3N */ TIM_CCxNCmd(TIM1,TIM_Channel_3, ENABLE);

59 函数TIM_SelectOCxM

函数 TIM_SelectOCxM

TIM_SelectOCxM 函数名 函数原形 功能描述 void TIM_SelectOCxM(TIM_TypeDef* TIM_OCMode) TIMx,u16 TIM_Channel, u16 选择 TIM 输出比较模式(CCMR1/0_OcxM=000~111)。 本函数 在改 变输出 比较 模式前 失能 选中的 通道 。用户 必须 使用函TIM_CCxCmd 和 TIM_CCxNCmd 来使能这个通道。 数 TIMx:x 可以是1~5、8~17,来选择 TIM 外设 TIM_Channel:TIM 通道 参阅 Section:TIM_Channel 查阅更多该参数允许取值范围 TIM_OCMode: TIM 通道 CCxNE 位的新状态 参阅 Section:TIM_OCMode 查阅更多该参数允许取值范围 无 无 无 无 输入参数 1 输入参数 2 输入参数 3 输出参数 返回值 先决条件 被调用函数 TIM_Channel

TIM_Channel 选择通道。该参数取值见下表。 TIM_Channel TIM_Channel_1 使用 TIM 通道 1 TIM_Channel_2 使用 TIM 通道 2 TIM_Channel_3 使用 TIM 通道 3 TIM_Channel_4 使用 TIM 通道 4 描述

47

TIM_OCMode

TIM_OCMode 选择定时器模式。该参数取值见下表。 TIM_OCMode TIM_OCMode_Timing TIM_OCMode_Active TIM_OCMode_Inactive TIM_OCMode_Toggle TIM_OCMode_PWM1 TIM_OCMode_PWM2 TIM_ForcedAction_Active TIM_ForcedAction_InActive 描述 TIM 输出比较时间模式(无输出) TIM 输出比较主动模式(匹配时输出有效电平) TIM 输出比较非主动模式(匹配时输出无效电平) TIM 输出比较触发模式(匹配时输出翻转) TIM 脉冲宽度调制模式 1(PWM模式1) TIM 脉冲宽度调制模式 2(PWM模式2) 置活动电平为 OCxREF 置非活动电平为 OCxREF 例:

/* Selects the TIM1 Channel 1 PWM2 Mode */

TIM_SelectOCxM(TIM1,TIM_Channel_1, TIM_OCMode_PWM2);

60 函数TIM_UpdateDisableConfig

函数 TIM_UpdateDisableConfig

TIM_UpdateDisableConfig 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState Newstate) 设置TIMx 允许/禁止更新事件产生(设置CR1_UDIS) TIMx:x 可以是 1~17,来选择 TIM 外设 NewState:TIMx_CR1 寄存器 UDIS 位的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Enables the Update event for TIM2 */ TIM_UpdateDisableConfig(TIM2, DISABLE);

61 函数TIM_UpdateRequestConfig

函数 TIM_UpdateRequestConfig

TIM_UpdateRequestConfig 函数名 函数原形 功能描述

void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, u16 TIM_UpdateSource) 设置 TIMx 的中断和DMA更新请求源模式(设置CR1_URS 48

输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 TIMx:x 可以是1~17,来选择 TIM 外设 TIM_UpdateSource:TIM 更新请求源 参阅 Section:TIM_UpdateSource 查阅更多该参数允许取值范围 无 无 无 无 TIM_UpdateSource

TIM_UpdateSource 选择 TIM 更新源。参阅该参数的取值。 TIM_UpdateSource TIM_UpdateSource_Global TIM_UpdateSource_Regular 描述 生成重复的脉冲:在更新事件时计数器不停止 生成单一的脉冲:计数器在下一个更新事件停止 例:

/* Selects the regular update source for TIM2 */

TIM_UpdateRequestConfig(TIM2, TIM_UpdateSource_Regular);

62 函数TIM_SelectHallSensor

函数 TIM_SelectHallSensor

TIM_SelectHallSensor 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState Newstate) 使能或者失能 TIMx 霍尔传感器接口(设置CR2_TI1S) TIMx:x 可以是1~5、8,来选择 TIM 外设 NewState:TIMx 霍尔传感器接口的新状态 这个参数可以取:ENABLE 或者 DISABLE 无 无 无 无 例:

/* Selects the Hall Sensor Interface for TIM2 */ TIM_SelectHallSensor(TIM2, ENABLE);

63 函数TIM_SelectOnePulseMode

函数 TIM_SelectOnePulseMode

TIM_SelectOnePulseMode 函数名 函数原形

void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, u16 TIM_OPMode) 49

功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 设置 TIMx 单脉冲模式(设置CR1_OPM) TIMx:x 可以是1~17,来选择 TIM 外设 TIM_OPMode:OPM 模式 参阅 Section:TIM_OPMode 查阅更多该参数允许取值范围 无 无 无 无 TIM_OPMode

TIM_OPMode 选择 TIM 更新源。参阅该参数的取值。 TIM_OPMode TIM_OPMode_Repetitive TIM_OPMode_Single 描述 生成重复的脉冲:在更新事件时计数器不停止 生成单一的脉冲:计数器在下一个更新事件停止 例:

/* Selects the Single One Pulse Mode for TIM2 */ TIM_SelectOnePulseMode(TIM2, TIM_OPMode_Single);

64 函数TIM_SelectOutputTrigger

函数 TIM_SelectOutputTrigger

TIM_SelectOutputTrigger 函数名 函数原形 功能描述 输入参数 1 输入参数 2 输出参数 返回值 先决条件 被调用函数 void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, u16 TIM_TRGOSource) 选择 TIMx 主模式控制器输出模式(复位、使能、更新、捕获/比较1、比较OC1REF 、比较OC2REF 、比较OC3REF 、比较OC4REF) TIMx:x 可以是1~9、12、15,来选择 TIM 外设 TIM_TRGOSource:触发输出模式 参阅 Section:TIM_TRGOSource 查阅更多该参数允许取值范围 无 无 无 无 TIM_TRGOSource

TIM_TRGOSource 选择 TIM 触发输出源。参阅该参数的取值。 TIM_TRGOSource TIM_TRGOSource_Reset TIM_TRGOSource_Enable TIM_TRGOSource_Update TIM_TRGOSource_OC1 TIM_TRGOSource_OC1Ref

描述 使用寄存器 TIM_EGR 的UG位作为触发输出(TRGO) 使用计数器使能 CEN 作为触发输出(TRGO) 使用更新事件作为触发输出(TRGO) 一旦捕获或者比较匹配发生,当标志位 CC1F 被设置时触发输出发送一个肯定脉冲(TRGO) 使用 OC1REF 作为触发输出(TRGO) 50

本文来源:https://www.bwwdw.com/article/hxqp.html

Top