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)