STM32库函数功能详解

发布时间 : 星期五 文章STM32库函数功能详解更新完毕开始阅读

8 函数EXTI_ClearITPendingBit

功能描述:清除EXTI线路挂起位 例:

EXTI_ClearITpendingBit(EXTI_Line2);

三、通用定时器(TIM)

TIM寄存器结构

TIM_TypeDeff,在文件“stm32f10x_map.h”中定义如下:

typedef struct {

vu16 CR1;

u16 RESERVED0; vu16 CR2;

u16 RESERVED1; vu16 SMCR;

u16 RESERVED2; vu16 DIER;

u16 RESERVED3; vu16 SR;

u16 RESERVED4; vu16 EGR;

u16 RESERVED5; vu16 CCMR1; u16 RESERVED6; vu16 CCMR2; u16 RESERVED7; vu16 CCER;

u16 RESERVED8; vu16 CNT;

u16 RESERVED9; vu16 PSC;

u16 RESERVED10; vu16 ARR;

u16 RESERVED11[3]; vu16 CCR1;

u16 RESERVED12; vu16 CCR2;

u16 RESERVED13; vu16 CCR3;

u16 RESERVED14; vu16 CCR4;

u16 RESERVED15[3]; vu16 DCR;

u16 RESERVED16; vu16 DMAR;

u16 RESERVED17; }

TIM_TypeDef;

9

TIM库函数

1 函数TIM_DeInit

功能描述:将外设TIMx寄存器重设为缺省值 例:

TIM_DeInit(TIM2);

2 函数TIM_TimeBaseInit

功能描述:根据TIM_TimeBaseInitStruct中指定的参数初始化TIMx的时间基数单位 例:

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; TIM_TimeBaseStructure.TIM_Period = 0xFFFF; TIM_TimeBaseStructure.TIM_Prescaler = 0xF;

TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM2, & TIM_TimeBaseStructure);

TIM_TimeBaseInitTypeDef structure

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

typedef struct {

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

} TIM_TimeBaseInitTypeDef;

TIM_Period

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

TIM_Prescaler

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

TIM_ClockDivision

TIM_ClockDivision设置了时钟分割。 TIM_CKD_DIV1:TDTS = Tck_tim TIM_CKD_DIV2:TDTS = 2Tck_tim TIM_CKD_DIV4:TDTS = 4Tck_tim

TIM_CounterMode

TIM_CounterMode选择了计数器模式。 TIM_CounterMode_Up:TIM向上计数模式 TIM_CounterMode_Down:TIM向下计数模式

TIM_CounterMode_CenterAligned1:TIM中央对齐模式1计数模式 TIM_CounterMode_CenterAligned2:TIM中央对齐模式2计数模式 TIM_CounterMode_CenterAligned3:TIM中央对齐模式3计数模式

10

3 函数TIM_OCInit

功能描述:根据TIM_OCInitStruct中指定的参数初始化外设TIMx 例:

TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_Channel = TIM_Channel_1; TIM_OCInitStructure.TIM_Pulse = 0x3FFF;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OCInit(TIM2, & TIM_OCInitStructure);

TIM_OCInitStruct:

指向结构TIM_OCInitTypeDef的指针,包含了TIMx时间基数单位的配置信息

TIM_OCInitTypeDef structure

TIM_OCInitTypeDef定义于文件“stm32f10x_tim.h”:

typedef struct {

u16 TIM_OCMode; u16 TIM_Channel; u16 TIM_Pulse;

u16 TIM_OCPolarity; }

TIM_OCInitTypeDef;

TIM_OCMode

TIM_OCMode选择定时器模式。

TIM_OCMode_Timing:TIM输出比较时间模式 TIM_OCMode_Active:TIM输出比较主动模式 TIM_OCMode_Inactive:TIM输出比较非主动模式 TIM_OCMode_Toggle:TIM输出比较触发模式 TIM_OCMode_PWM1:TIM脉冲宽度调制模式1 TIM_OCMode_PWM2:TIM脉冲宽度调制模式2

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_Pulse

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

TIM_OCPolarity

TIM_OCPolarity输出极性。

TIM_OCPolarity_High:TIM输出比较极性高 TIM_OCPolarity_Low:TIM输出比较极性低

4 函数TIM_ICInit

功能描述:根据TIM_ICInitStruct中指定的参数初始化外设TIMx 例:

TIM_DeInit(TIM2);

TIM_ICStructInit(&TIM_ICInitStructure);

11

TIM_ICInitStructure.TIM_ICMode = TIM_ICMode_PWMI; 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_ICInit(TIM2, &TIM_ICInitStructure);

TIM_ICInitStruct:指向结构TIM_ICInitTypeDef的指针,包含了TIMx的配置信息

TIM_ICInitTypeDef structure

TIM_ICInitTypeDef定义于文件“stm32f10x_tim.h”:

typedef struct {

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

TIM_ICInitTypeDef;

TIM_ICMode

TIM_ICMode选择了TIM输入捕获模式。 TIM_ICMode_ICAP:TIM使用输入捕获模式 TIM_ICMode_PWMI:TIM使用输入PWM模式

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_Rising:TIM输入捕获上升沿 TIM_ICPolarity_Falling:TIM输入捕获下降沿

TIM_ICSelection

TIM_ICSelection选择输入。

TIM_ICSelection_DirectTI:TIM输入2,3或4选择对应地与IC1或IC2或IC3或IC4相连 TIM_ICSelection_IndirectTI:TIM输入2,3或4选择对应地与IC2或IC1或IC4或IC3相连TIM_ICSelection_TRC:TIM输入2,3或4选择与TRC相连

TIM_ICPrescaler

TIM_ICPrescaler设置输入捕获预分频器。

TIM_ICPSC_DIV1:TIM捕获在捕获输入上每探测到一个边沿执行一次 TIM_ICPSC_DIV2:TIM捕获每2个事件执行一次 TIM_ICPSC_DIV3:TIM捕获每3个事件执行一次 TIM_ICPSC_DIV4:TIM捕获每4个事件执行一次

TIM_ICFilter

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

12

联系合同范文客服:xxxxx#qq.com(#替换为@)