STM32F10x - TIM - 图文 下载本文

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

无 无 无 无 /* Sets the TIM2 new Output Compare 2 value */ u16 TIMCompare2 = 0x7FFF;

TIM_SetCompare2(TIM2, TIMCompare2); 函数原型如下:

void TIM_SetCompare2(TIM_TypeDef* TIMx, u16 Compare2) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

/* Set the Capture Compare2 Register value */ TIMx->CCR2 = Compare2; }

19.2.56 函数TIM_SetCompare3

Table 548. 函数TIM_SetCompare3 函数名 TIM_SetCompare3 函数原形 void TIM_SetCompare3(TIM_TypeDef* TIMx, u16 Compare3) 功能描述 设置TIMx捕获比较3寄存器值 输入参数1 TIMx:x可以是1,2,3,4,5,8来选择TIM外设 输入参数2 Compare1:捕获比较3寄存器新值 输出参数 无 返回值 无 先决条件 无 被调用函数 无 例:

/* Sets the TIM2 new Output Compare 3 value */ u16 TIMCompare3 = 0x7FFF;

TIM_SetCompare3(TIM2, TIMCompare3); 函数原型如下:

void TIM_SetCompare3(TIM_TypeDef* TIMx, u16 Compare3) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

/* Set the Capture Compare3 Register value */ TIMx->CCR3 = Compare3; }

19.2.57 函数TIM_SetCompare4

Table 549. 函数TIM_SetCompare4 函数名 TIM_SetCompare4 函数原形 void TIM_SetCompare4(TIM_TypeDef* TIMx, u16 Compare4) 功能描述 设置TIMx捕获比较4寄存器值 输入参数 1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数 2 Compare4:捕获比较4寄存器新值 输出参数 无 返回值 无 先决条件 无 被调用函数 无 例: /* Sets the TIM2 new Output Compare 4 value */ u16 TIMCompare4 = 0x7FFF;

TIM_SetCompare4(TIM2, TIMCompare4); 函数原型如下:

void TIM_SetCompare4(TIM_TypeDef* TIMx, u16 Compare4) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

/* Set the Capture Compare4 Register value */ TIMx->CCR4 = Compare4; }

19.2.58 函数TIM_SetIC1Prescaler

Table 550. 函数 TIM_SetIC1Prescaler 函数名 TIM_SetIC1Prescaler 函数原形 void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, u16 TIM_IC1Prescaler) 功能描述 设置TIMx输入捕获1预分频 输入参数1 TIMx:x可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_IC1Prescaler:输入捕获1预分频 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_IC1Prescaler:输入捕获1预分频 参数TIM_IC1Prescaler取值 描述/CCMR1.IC1PCS[3:2] #define值 TIM_ICPSC_DIV1 无预分频器[边缘触发] ((u16)0x0000) TIM_ICPSC_DIV2 每2个事件触发一次捕获 ((u16)0x0004) TIM_ICPSC_DIV4 每4个事件触发一次捕获 ((u16)0x0008) TIM_ICPSC_DIV8 每8个事件触发一次捕获 ((u16)0x000C)

例:

/* Sets the TIM2 Input Capture 1 Prescaler */ TIM_SetIC1Prescaler(TIM2, TIM_ICPSC_Div2); 函数原型如下:

void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC));

/* Reset the IC1PSC Bits */

TIMx->CCMR1 &= CCMR_IC13PSC_Mask;//0xFFF3

/* Set the IC1PSC value */ TIMx->CCMR1 |= TIM_ICPSC; }

19.2.59 函数TIM_SetIC2Prescaler

Table 551. 函数 TIM_SetIC2Prescaler 函数名 TIM_SetIC2Prescaler 函数原形 void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, u16 TIM_IC2Prescaler) 功能描述 设置TIMx输入捕获2预分频 输入参数 1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数 2 TIM_IC2Prescaler:输入捕获2预分频 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_IC2Prescaler:输入捕获2预分频【采用TIM_IC1Prescaler的值】 参数TIM_IC1Prescaler取值 描述/CCMR1.IC2PCS[3:2] #define值 TIM_ICPSC_DIV1 无预分频器[边缘触发] ((u16)0x0000) TIM_ICPSC_DIV2 每2个事件触发一次捕获 ((u16)0x0004) TIM_ICPSC_DIV4 每4个事件触发一次捕获 ((u16)0x0008) TIM_ICPSC_DIV8 每8个事件触发一次捕获 ((u16)0x000C) 例:

/* Sets the TIM2 Input Capture 2 Prescaler */ TIM_SetIC2Prescaler(TIM2, TIM_ICPSC_Div2); 函数原型如下:

void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC));

/* Reset the IC2PSC Bits */

TIMx->CCMR1 &= CCMR_IC24PSC_Mask; //0xF3FF

/* Set the IC2PSC value */

TIMx->CCMR1 |= (u16)(TIM_ICPSC << 8);//采用IC1PSC[3:2]的值,IC2PSC比IC1PSC的高8位处 }

19.2.60 函数TIM_SetIC3Prescaler

Table 552. 函数TIM_SetIC3Prescaler 函数名 TIM_SetIC3Prescaler 函数原形 void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, u16 TIM_IC3Prescaler) 功能描述 设置TIMx输入捕获3预分频 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_IC1Prescaler:输入捕获3预分频 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_IC3Prescaler:输入捕获3预分频【采用TIM_IC1Prescaler的值】 参数TIM_IC1Prescaler取值 描述/CCMR2.IC3PCS[3:2] #define值 TIM_ICPSC_DIV1 无预分频器[边缘触发] ((u16)0x0000) TIM_ICPSC_DIV2 每2个事件触发一次捕获 ((u16)0x0004) TIM_ICPSC_DIV4 每4个事件触发一次捕获 ((u16)0x0008) TIM_ICPSC_DIV8 每8个事件触发一次捕获 ((u16)0x000C)

例:

/* Sets the TIM2 Input Capture 3 Prescaler */ TIM_SetIC3Prescaler(TIM2, TIM_ICPSC_Div2); 函数原型如下:

void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC));

/* Reset the IC3PSC Bits */

TIMx->CCMR2 &= CCMR_IC13PSC_Mask; //0xFFF3

/* Set the IC3PSC value */ TIMx->CCMR2 |= TIM_ICPSC; }

19.2.61 函数TIM_SetIC4Prescaler

Table 553. 函数 TIM_SetIC4Prescaler 函数名 TIM_SetIC4Prescaler 函数原形 void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, u16 TIM_IC4Prescaler) 功能描述 设置TIMx输入捕获4预分频 输入参数 1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数 2 TIM_IC1Prescaler:输入捕获4预分频 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_IC4Prescaler:输入捕获4预分频【采用TIM_IC1Prescaler的值】 参数TIM_IC1Prescaler取值 描述/CCMR2.IC4PCS[3:2] #define值 TIM_ICPSC_DIV1 无预分频器[边缘触发] ((u16)0x0000) TIM_ICPSC_DIV2 每2个事件触发一次捕获 ((u16)0x0004) TIM_ICPSC_DIV4 每4个事件触发一次捕获 ((u16)0x0008) TIM_ICPSC_DIV8 每8个事件触发一次捕获 ((u16)0x000C) 例:

/* Sets the TIM2 Input Capture 4 Prescaler */ TIM_SetIC4Prescaler(TIM2, TIM_ICPSC_Div2); 函数原型如下:

void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, u16 TIM_ICPSC) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_IC_PRESCALER(TIM_ICPSC));

/* Reset the IC4PSC Bits */

TIMx->CCMR2 &= CCMR_IC24PSC_Mask; //0xF3FF

/* Set the IC4PSC value */

TIMx->CCMR2 |= (u16)(TIM_ICPSC << 8); //CCMR2上,采用IC1PSC[3:2]的值,IC4PSC比IC3PSC的高8位处 }

19.2.62 函数TIM_SetClockDivision

Table 554. 函数TIM_SetClockDivision 函数名 TIM_SetClockDivision 函数原形 void TIM_SetClockDivision(TIM_TypeDef* TIMx, u16 TIM_CKD) 功能描述 设置TIMx的时钟分割值 输入参数1 TIMx:x 可以是1,2,3,4,5,8来选择TIM外设 输入参数2 TIM_CKD:时钟分割值 输出参数 无 返回值 无 先决条件 无 被调用函数 无 TIM_CKD:时钟分割值 参数TIM_CKD取值 描述/CR1.CKD[1:0] #define值 备注 TIM_CKD_DIV1 tDTS=1 x tCK_INT ((u16)0x0000) TIM_CKD_DIV2 tDTS=2 x tCK_INT ((u16)0x0100) bit9-8 TIM_CKD_DIV4 tDTS=4 x tCK_INT ((u16)0x0200) -- -- ((u16)0x0300) 保留 例:

/* Sets the TIM2 CKD value */

TIM_SetClockDivision(TIM2, TIM_CKD_DIV4); 函数原型如下:

void TIM_SetClockDivision(TIM_TypeDef* TIMx, u16 TIM_CKD) {

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx)); assert_param(IS_TIM_CKD_DIV(TIM_CKD));

/* Reset the CKD Bits */

TIMx->CR1 &= CR1_CKD_Mask;//0x00FF //bit15-10位(6bit)保留

/* Set the CKD value */ TIMx->CR1 |= TIM_CKD; }

19.2.63 函数TIM_GetCapture1

Table 555. 函数TIM_GetCapture1 函数名 TIM_GetCapture1 函数原形 u16 TIM_GetCapture1(TIM_TypeDef* TIMx)