STM32定时器.docx

上传人:b****6 文档编号:6030214 上传时间:2023-01-03 格式:DOCX 页数:10 大小:24.72KB
下载 相关 举报
STM32定时器.docx_第1页
第1页 / 共10页
STM32定时器.docx_第2页
第2页 / 共10页
STM32定时器.docx_第3页
第3页 / 共10页
STM32定时器.docx_第4页
第4页 / 共10页
STM32定时器.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

STM32定时器.docx

《STM32定时器.docx》由会员分享,可在线阅读,更多相关《STM32定时器.docx(10页珍藏版)》请在冰豆网上搜索。

STM32定时器.docx

STM32定时器

一、定时器(TIMx)

1.关联函数:

A.TIM_OC1Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct):

TIMx通道1配置函数。

B.TIM_OC2Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct):

TIMx通道2配置函数。

C.TIM_OC3Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct):

TIMx通道3配置函数。

D.TIM_OC4Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct):

TIMx通道4配置函数。

E.TIM_ICInit(TIM_TypeDef*TIMx,TIM_ICInitTypeDef*TIM_ICInitStruct):

TIMx捕获输入配置函数F.TI1_Config(TIM_TypeDef*TIMx,uint16_tTIM_ICPolarity,uint16_tTIM_ICSelection,uint16_tTIM_ICFilter):

TI1配置函数G.TI2_Config(TIM_TypeDef*TIMx,uint16_tTIM_ICPolarity,uint16_tTIM_ICSelection,uint16_tTIM_ICFilter):

TI2配置函数H.TI3_Config(TIM_TypeDef*TIMx,uint16_tTIM_ICPolarity,uint16_tTIM_ICSelection,uint16_tTIM_ICFilter):

TI3配置函数I.TI4_Config(TIM_TypeDef*TIMx,uint16_tTIM_ICPolarity,uint16_tTIM_ICSelection,

uint16_tTIM_ICFilter):

TI4配置函数J.TIM_SetICxPrescaler(TIM_TypeDef*TIMx,uint16_tTIM_ICPSC):

配置TIMx输入捕获x的预分频器函数K.TIM_PWMIConfig(TIM_TypeDef*TIMx,TIM_ICInitTypeDef*TIM_ICInitStruct):

TIMx的PWM输入模式配置函数L.TIM_BDTRConfig(TIM_TypeDef*TIMx,TIM_BDTRInitTypeDef*TIM_BDTRInitStruct)配置刹车,死区时间,锁定级别,OSSI,OSSR状态和自动输出函数.M.TIM_Cmd(TIM_TypeDef*TIMx,FunctionalStateNewState)typedefenum{DISABLE=0,ENABLE=!

DISABLE}FunctionalState;TIMx功能的开关状态N.TIM_CtrlPWMOutputs(TIM_TypeDef*TIMx,FunctionalStateNewState)typedefenum{DISABLE=0,ENABLE=!

DISABLE}FunctionalState;TIMx的PWM功能的开关状态O.TIM_ITConfig(TIM_TypeDef*TIMx,uint16_tTIM_IT,FunctionalStateNewState)TIMx中断和DMA开启与关断函数P.TIM_GenerateEvent(TIM_TypeDef*TIMx,uint16_tTIM_EventSource)事件产生配置函数Q.TIM_DMAConfig(TIM_TypeDef*TIMx,uint16_tTIM_DMABase,uint16_tTIM_DMABurstLength)

TIMx的DMA基本配置函数R.TIM_DMACmd(TIM_TypeDef*TIMx,uint16_tTIM_DMASource,FunctionalStateNewState)TIMx的DMA发送函数【说明:

】函数体中,tmpccmrx、tmpccer、tmpcr2为中间变量,先读取当前寄存器的配置数据,再使用&=配置相关位的数值以便保留当前配置数据。

2.结构体TIM_TimeBaseInitTypeDef内容1)

定义方式:

a.TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStructure或b.TIM_TimeBaseInitTypeDefTIM_TimeBaseInitStructure2)函数调用:

a.TIM_TimeBaseInit(TIM1,TIM_TimeBaseInitStructure)或b.TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure)a对应a;b对应b3)配置内容:

TIMx、TIM_CounterMode、TIM_ClockDivisionS.函数4)TIM_TimeBaseInit(TIM_TypeDef*TIMx,TIM_TimeBaseInitTypeDef*TIM_TimeBaseInitStruct)T.TIM_Prescaler(寄存器TIMx_PSC)(Prescalervalue)5)预分频设置,赋值使用TIM_TimeBaseInitStructure->TIM_PrescalerU.TIM_CounterMode(寄存器位TIMx_CR1_DIR_CMS)6)TIM_CounterMode_Up:

计数器向上计数TIMx_CR1=0x00007)TIM_CounterMode_Down:

计数器向下计数TIMx_CR1=0x0010

8)TIM_CounterMode_CenterAligned1:

中央对齐模式1TIMx_CR1=0x00209)TIM_CounterMode_CenterAligned2:

中央对齐模式2TIMx_CR1=0x004010)TIM_CounterMode_CenterAligned3:

中央对齐模式3TIMx_CR1=0x0060V.TIM_Period(寄存器TIMx_ARR)(Autoreloadvalue)11)自动重装载寄存器,赋值使用TIM_TimeBaseInitStructure->TIM_PeriodW.TIM_ClockDivision(寄存器位TIMx_CR1_CKD)12)TIM_CKD_DIV1:

tDTS=tCK_INTTIMx_CR1=0x000013)TIM_CKD_DIV2:

tDTS=2×tCK_INTTIMx_CR1=0x010014)TIM_CKD_DIV4:

tDTS=4×tCK_INTTIMx_CR1=0x0200X.TIM_RepetitionCounter(寄存器TIMx_RCR)(RepetitionCountervalue)15)设置重复计数寄存器,赋值使用TIM_TimeBaseInitStructure->TIM_RepetitionCounter3.结构体TIM_OCInitTypeDef内容:

16)

定义方式:

a.TIM_OCInitTypeDef*TIMx_OCInitStructure或b.TIM_OCInitTypeDefTIMx_OCInitStructure17)函数调用:

a.TIM_OC1Init(TIM1,TIM1_OCInitStructure)或b.TIM_OC1Init(TIM1,&TIM1_OCInitStructure)a对应a;b对应b18)配置内容:

TIMx、TIM_OCMode、IM_OutputState、TIM_OCPolarity

Y.函数:

19)TIM_OC1Init(TIM_TypeDef*TIMx,TIM_OCInitTypeDef*TIM_OCInitStruct)ZZ.TIM_OCMode:

输出比较模式选择(寄存器CCMRx_OCxM)20)TIM_OCMode_Timing:

CCMR=0X000021)TIM_OCMode_Active:

CCMR=0X001022)TIM_OCMode_Inactive:

CCMR=0X002023)TIM_OCMode_Toggle:

CCMR=0X003024)TIM_OCMode_PWM1:

CCMR=0X0060:

PWM1模式输出:

25)TIM_OCMode_PWM2:

CCMR=0X0070:

PWM2模式输出:

AA.TIM_OutputState:

输出比较状态使能(寄存器位TIMx_CCER_CCxE)26)TIM_OutputState_Disable:

PWM输出使能27)TIM_OutputState_Enable:

PWM输出禁止28)【备注】TIMx->CCER|=(uint16_t)(TIM_OCInitStruct->TIM_OutputState<

通道4<<12,3<<8,2<<4BB.TIM_OutputNState:

互补输出比较状态使能(寄存器位TIMx_CCER_CCxN)30)TIM_OutputNState_Disable:

互补PWM通道输出使能31)TIM_OutputNState_Enable:

互补PWM通道输出禁止【备注】TIMx->CCER|=(uint16_t)(TIM_OCInitStruct->TIM_OutputNState<

通道3<<8、2<<4CC.TIM_Pulse:

捕获比较频率设置,范围0x0000~0xFFFFDD.TIM_OCPolarity:

输出比较极性选择(寄存器位TIMx_CCER_CC1P)

32)TIM_OCPolarity_High:

输出极性高电平有效TIMx_CCER=0x000033)TIM_OCPolarity_Low:

输出极性低电平有效TIMx_CCER=0x0002EE.TIM_OCNPolarity:

互补通道输出极性选择(寄存器位TIMx_CCER_CC1NP)34)TIM_OCNPolarity_High:

输出极性高电平有效TIMx_CCER=0x000035)TIM_OCNPolarity_Low:

输出极性低电平有效_TIMx_CCER=0x0008FF.TIM_OCIdleState:

TIMx的IDLE状态(寄存器位TIMx_CR2_0ISx)36)TIM_OCIdleState_Set:

IDLE状态置位TIMx_CCER=0x010037)TIM_OCIdleState_Reset:

IDLE状态复位TIMx_CCER=0x0000GG.TIM_OCNIdleState:

TIMx的IDLE状态(寄存器位TIMx_CR2_OISxN)38)TIM_OCNIdleState_Set:

互补通道IDLE状态置位TIMx_CR2=0x020039)TIM_OCNIdleState_Reset:

互补通道IDLE状态复位TIMx_CR2=0x0000HH.【说明:

】设置IDLE状态位是刹车寄存器MOE位置0时,是PWM输出极性失效4.结构体TIM_ICInitTypeDef内容:

(定时器的输入捕获功能)40)

定义方式:

a.TIM_ICInitTypeDef*TIM_ICInitStructure或b.TIM_ICInitTypeDefTIM_ICInitStructure41)函数调用:

a.TIM_ICInit(TIM1,TIM_ICInitStructure)或b.TIM_ICInit(TIM1,&TIM_ICInitStructure)a对应a;b对应b42)配置内容:

TIM_Channel、TIM_ICSelection、TIM_ICPrescaler、TIM_ICFilter

II.TIM_Channel:

43)TIM_Channel_1:

TIMx通道144)TIM_Channel_2:

TIMx通道245)TIM_Channel_3:

TIMx通道346)TIM_Channel_4:

TIMx通道4JJ.TIM_ICPolarity:

(TIM1、TIM2、TIM3、TIM4、TIM5、TIM8)47)TIM_ICPolarity_Rising:

上升沿捕获48)TIM_ICPolarity_Falling:

下降沿捕获KK.TIM_ICPolarity_LITE:

(寄存器TIMx_CCER)49)TIM_ICPolarity_Rising:

上升沿捕获TIMx_CCER=0x000050)TIM_ICPolarity_Falling:

下降沿捕获TIMx_CCER=0x000251)TIM_ICPolarity_BothEdge:

双边捕获TIMx_CCER=0x000ALL.TIM_ICSelection:

(寄存器TIMx_CCMRx)52)TIM_ICSelection_DirectTI:

直接映射:

通道1—TI1、2—TI2、3—TI3、4—TI4TIMx_CCMR1=0x000153)TIM_ICSelection_IndirectTI:

间接映射:

通道1—TI2、2—TI1、3—TI4、4—TI3TIMx_CCMR1=0x000254)TIM_ICSelection_TRC:

映射到TRC:

通道1、2、3、4映射到TRCTIMx_CCMR1=0x0003MM.TIM_ICPrescaler:

(寄存器位TIMx_CCMRx_ICxPSC)55)TIM_ICPSC_DIV1:

无分频器,每一个边沿都出发一次捕获TIMx_CCMR1=0x000056)TIM_ICPSC_DIV2:

每2个事件触发一次捕获TIMx_CCMR1=0x000457)TIM_ICPSC_DIV4:

每4个事件触发一次捕获TIMx_CCMR1=0x000858)TIM_ICPSC_DIV8:

每8个事件触发一次捕获TIMx_CCMR1=0x000C

NN.TIM_ICFilter:

(寄存器位TIMx_CCMRx_ICxF)59)(ICFILTER)<=0xF:

输入捕获滤波器5.结构体TIM_BDTRInitTypeDef内容:

60)

定义方式:

a.TIM_BDTRInitTypeDef*TIM_BDTRInitStructure或b.TIM_BDTRInitTypeDefTIM_BDTRInitStructure61)函数调用:

a.TIM_BDTRConfig(TIM1,TIM_BDTRInitStruct)或b.TIM_BDTRConfig(TIM1,&TIM_BDTRInitStruct)a对应a;b对应b62)配置内容:

TIM_OSSRState、TIM_OSSIState、TIM_LOCKLevel、TIM_Break、TIM_BreakPolarityTIM_AutomaticOutputOO.TIM_OSSRState:

(寄存器TIMx_BDTR_OSSR)63)TIM_OSSRState_Enable:

((uint16_t)0x0800)64)TIM_OSSRState_Disable:

((uint16_t)0x0000)PP.TIM_OSSIState:

(寄存器TIMx_BDTR_OSSI)65)TIM_OSSIState_Enable:

((uint16_t)0x0400)66)TIM_OSSIState_Disable:

((uint16_t)0x0000)QQ.TIM_LOCKLevel:

(寄存器TIMx_BDTR_LOOK)67)TIM_LOCKLevel_3:

((uint16_t)0x0300):

锁定级别368)TIM_LOCKLevel_2:

((uint16_t)0x0200):

锁定级别269)TIM_LOCKLevel_1:

((uint16_t)0x0100):

锁定级别1:

70)TIM_LOCKLevel_OFF:

((uint16_t)0x0000):

锁定关闭

RR.TIM_DeadTime:

(寄存器TIMx_BDTR_DTG)71)DTG[7:

5]=0xx=>DT=DTG[7:

0]×Tdtg,Tdtg=TDTS;72)DTG[7:

5]=10x=>DT=(64+DTG[5:

0])×Tdtg,Tdtg=2×TDTS;73)DTG[7:

5]=110=>DT=(32+DTG[4:

0])×Tdtg,Tdtg=8×TDTS;74)DTG[7:

5]=111=>DT=(32+DTG[4:

0])×Tdtg,Tdtg=16×TDTS;SS.TIM_Break:

(寄存器TIMx_BDTR_BKE)75)TIM_Break_Enable:

((uint16_t)0x1000)刹车功能使能76)TIM_Break_Disable:

((uint16_t)0x0000)刹车功能禁止TT.TIM_BreakPolarity:

(寄存器TIMx_BDTR_BKP)77)TIM_BreakPolarity_Low:

((uint16_t)0x0000):

刹车输入低电平有效78)TIM_BreakPolarity_High:

((uint16_t)0x2000):

刹车输入高电平有效UU.TIM_AutomaticOutput:

(寄存器TIMx_BDTR_AOE)79)TIM_AutomaticOutput_Enable:

((uint16_t)0x4000):

MOE能被软件置1或者下一个更新时间自动置180)TIM_AutomaticOutput_Disable:

((uint16_t)0x0000):

MOE只能被软件置16.定时器TIMx中断TIM_ITVV.TIM_ITConfig(TIM_TypeDef*TIMx,uint16_tTIM_IT,FunctionalStateNewState)81)TIM_IT_Update:

((uint16_t)0x0001)更新中断82)TIM_IT_CC1:

((uint16_t)0x0002)捕获比较1中断

83)TIM_IT_CC2:

((uint16_t)0x0004)捕获比较2中断84)TIM_IT_CC3:

((uint16_t)0x0008)捕获比较3中断85)TIM_IT_CC4:

((uint16_t)0x0010)捕获比较4中断86)TIM_IT_COM:

((uint16_t)0x0020)COM中断87)TIM_IT_Trigger:

((uint16_t)0x0040)触发中断88)TIM_IT_Break:

((uint16_t)0x0080)刹车中断中断WW.中断判断:

IS_TIM_IT(IT)((((IT)&(uint16_t)0xFF00)==0x0000)&&((IT)!

=0x0000))7.定时器TIMx事件发生控制(TIM_EGR)XX.TIM_GenerateEvent(TIM_TypeDef*TIMx,uint16_tTIM_EventSource)89)TIM_EventSource_Update:

((uint16_t)0x0001)更新时间90)TIM_EventSource_CC1:

((uint16_t)0x0002)捕获比较1事件91)TIM_EventSource_CC2:

((uint16_t)0x0004)捕获比较2事件92)TIM_EventSource_CC3:

((uint16_t)0x0008)捕获比较3事件93)TIM_EventSource_CC4:

((uint16_t)0x0010)捕获比较4事件94)TIM_EventSource_COM:

((uint16_t)0x0020)捕获比较事件产生控制更新95)TIM_EventSource_Trigger:

((uint16_t)0x0040)产生出发事件96)TIM_EventSource_Break:

((uint16_t)0x0080)产生刹车事件97)事件判断:

IS_TIM_EVENT_SOURCE(SOURCE)((((SOURCE)&(uint16_t)0xFF00)==0x0000)&&((SOURCE)!

=0x0000))

YY.TIM_DMABase内容:

(寄存器TIMx_DCR_DBA)DBA定义为从TIMx_CR1寄存器所在地址开始的偏移量98)#defineTIM_DMABase_CR1((uint16_t)0x0000)99)#defineTIM_DMABase_CR2((uint16_t)0x0001)100)#defineTIM_DMABase_SMCR((uint16_t)0x0002)101)#defineTIM_DMABase_DIER((uint16_t)0x0003)102)#defineTIM_DMABase_SR((uint16_t)0x0004)103)#defineTIM_DMABase_EGR((uint16_t)0x0005)104)#defineTIM_DMABase_CCMR1((uint16_t)0x0006)105)#defineTIM_DMABase_CCMR2((uint16_t)0x0007)106)#defineTIM_DMABase_CCER((uint16_t)0x0008)107)#defineTIM_DMABase_CNT((uint16_t)0x0009)108)#defineTIM_DMABase_PSC((uint16_t)0x000A)109)#defineTIM_DMABase_ARR((uint16_t)0x000B)110)#defineTIM_DMABase_RCR((uint16_t)0x000C)

111)#defineTIM_DMABase_CCR1((uint16_t)0x000D)112)#defineTIM_DMABase_CCR2((uint16_t)0x000E)113)#defineTIM_DMABase_CCR3((uint16_t)0x000F)114)#defineTIM_DMABase_CCR4((uint16_t)0x0010)115)#defineTIM_DMABase_BDTR((uint16_t)0x0011)116)#defineTIM_DMABase_DCR((uint16_t)0x0012

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

当前位置:首页 > 自然科学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1