STM32F10x - TIM - ͼÎÄ

tmpccer |= (TIM_IC1Polarity | (u16)(TIM_IC2Polarity << 4)); //ÉèÖÃͨµÀÊäÈë²¶»ñ·½Ê½£º·´Ïࣿ²»·´Ïࣿ //TIM_IC2Polarity²ÉÓõÄIC1PµÄ¶¨ÒåÖµ£¬IC2PÔÚIC1PµÄ¸ß4λ´¦

/* Write to TIMx SMCR,CCMR1 ,CCER */ TIMx->SMCR = tmpsmcr;

TIMx->CCMR1 = tmpccmr1; // CCMR1/2.CCxS½öÔÚͨµÀ¹Ø±Õʱ(CCER.CCxE=0)²ÅÊÇ¿ÉдµÄ£¡ TIMx->CCER = tmpccer; }

19.2.41 º¯ÊýTIM_GenerateEvent

Table 527. º¯ÊýTIM_GenerateEvent º¯ÊýÃû TIM_GenerateEvent º¯ÊýÔ­ÐÎ void TIM_GenerateEvent(TIM_TypeDef* TIMx, u16 TIM_EventSource) ¹¦ÄÜÃèÊö ÉèÖÃTIMxʼþÓÉÈí¼þ²úÉú ÊäÈë²ÎÊý1 TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_EventSource£ºTIMÈí¼þʼþÔ´ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_EventSource £ºÑ¡Ôñ TIMÈí¼þʼþÔ´¡£ Table 528. TIM_EventSourceÖµ TIM_EventSource ÃèÊö/EGR #defineÖµ EGRλÖà TIM_EventSource_Update TIM¸üÐÂʼþÔ´ 0x0001 bit0 TIM_EventSource_CC1 TIM²¶»ñ±È½Ï1ʼþÔ´ 0x0002 bit1 TIM_EventSource_CC2 TIM²¶»ñ±È½Ï2ʼþÔ´ 0x0004 bit2 TIM_EventSource_CC3 TIM²¶»ñ±È½Ï3ʼþÔ´ 0x0008 bit3 TIM_EventSource_CC4 TIM²¶»ñ±È½Ï4ʼþÔ´ 0x0010 bit4 TIM_EventSource_COM TIM COMʼþÔ´ 0x0020 bit5 TIM_EventSource_Trigger TIM´¥·¢Ê¼þÔ´ 0x0040 bit6 TIM_EventSource_Break TIMɲ³µÊ¼þÔ´ 0x0080 bit7 Àý£º

/* Selects the Trigger software Event generation for TIM2 */ TIM_GenerateEvent(TIM2, TIM_EventSource_Trigger); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_GenerateEvent(TIM_TypeDef* TIMx, u16 TIM_EventSource) {

/* Check the parameters */

assert_param(IS_TIM_ALL_PERIPH(TIMx));

assert_param(IS_TIM_EVENT_SOURCE(TIM_EventSource));

assert_param(IS_TIM_PERIPH_EVENT((TIMx), (TIM_EventSource)));

/* Set the event sources */ TIMx->EGR = TIM_EventSource; }

19.2.42 º¯ÊýTIM_OC1PolarityConfig

Table 529. º¯ÊýTIM_OC1PolarityConfig º¯ÊýÃû TIM_OC1PolarityConfig º¯ÊýÔ­ÐÎ void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) ¹¦ÄÜÃèÊö ÉèÖÃTIMxͨµÀ1¼«ÐÔ ÊäÈë²ÎÊý1 TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ¡£ ²ÎÊýTIM_OCPolarityµÄÖµ ÃèÊö/CCER.CC1P[bit1] TIM_OCPolarity_High CCxͨµÀÊä³ö¸ßµçƽÓÐЧ TIM_OCPolarity_Low CCxͨµÀÊä³öµÍµçƽÓÐЧ Àý£º #define ((u16)0x0000) ((u16)0x0002) /* Selects the Polarity high for TIM2 channel 1 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) {

u16 tmpccer = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity));

tmpccer = TIMx->CCER;

/* Set or Reset the CC1P Bit *///bit1 tmpccer &= CCER_CC1P_Reset; tmpccer |= TIM_OCPolarity;

/* Write to TIMx CCER register */ TIMx->CCER = tmpccer; }

19.2.43 º¯ÊýTIM_OC2PolarityConfig

Table 530. º¯Êý TIM_OC2PolarityConfig º¯ÊýÃû TIM_OC2PolarityConfig º¯ÊýÔ­ÐÎ void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) ¹¦ÄÜÃèÊö ÉèÖÃTIMxͨµÀ2¼«ÐÔ ÊäÈë²ÎÊý1 TIMx£ºx¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ¡£¡¾²ÉÓÃTIM_OC1PolarityConfigµÄÖµ¡¿ ²ÎÊýTIM_OCPolarityµÄÖµ ÃèÊö/CCER.CC1P[bit1] #define TIM_OCPolarity_High CCxͨµÀÊä³ö¸ßµçƽÓÐЧ ((u16)0x0000) TIM_OCPolarity_Low CCxͨµÀÊä³öµÍµçƽÓÐЧ ((u16)0x0002) Àý£º

/* Selects the Polarity high for TIM2 channel 2 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) {

u16 tmpccer = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity));

tmpccer = TIMx->CCER;

/* Set or Reset the CC2P Bit */ tmpccer &= CCER_CC2P_Reset;

tmpccer |= (u16)(TIM_OCPolarity << 4);//²ÉÓÃOC1PµÄÖµ£¬OC2P¸ßOC1P 4λ

/* Write to TIMx CCER register */ TIMx->CCER = tmpccer; }

19.2.44 º¯ÊýTIM_OC3PolarityConfig

Table 531. º¯Êý TIM_OC1PolarityConfig

º¯ÊýÃû TIM_OC3PolarityConfig º¯ÊýÔ­ÐÎ void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) ¹¦ÄÜÃèÊö ÉèÖÃTIMxͨµÀ3¼«ÐÔ ÊäÈë²ÎÊý1 TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ¡£¡¾²ÉÓÃTIM_OC1PolarityConfigµÄÖµ¡¿ ²ÎÊýTIM_OCPolarityµÄÖµ ÃèÊö/CCER.CC1P[bit1] #define TIM_OCPolarity_High CCxͨµÀÊä³ö¸ßµçƽÓÐЧ ((u16)0x0000) TIM_OCPolarity_Low CCxͨµÀÊä³öµÍµçƽÓÐЧ ((u16)0x0002) Àý£º

/* Selects the Polarity high for TIM2 channel 3 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) {

u16 tmpccer = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity));

tmpccer = TIMx->CCER;

/* Set or Reset the CC3P Bit */ tmpccer &= CCER_CC3P_Reset;

tmpccer |= (u16)(TIM_OCPolarity << 8); //²ÉÓÃOC1PµÄÖµ£¬OC2P¸ßOC1P 8λ

/* Write to TIMx CCER register */ TIMx->CCER = tmpccer; }

19.2.45 º¯ÊýTIM_OC4PolarityConfig

Table 532. º¯ÊýTIM_OC4PolarityConfig º¯ÊýÃû TIM_OC4PolarityConfig void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, u16 º¯ÊýÔ­ÐÎ TIM_OCPolarity) ¹¦ÄÜÃèÊö ÉèÖÃTIMxͨµÀ4¼«ÐÔ ÊäÈë²ÎÊý1 TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_OCPolarity£ºÊä³ö±È½Ï¼«ÐÔ¡£¡¾²ÉÓÃTIM_OC1PolarityConfigµÄÖµ¡¿ ²ÎÊýTIM_OCPolarityµÄÖµ ÃèÊö/CCER.CC1P[bit1] #define TIM_OCPolarity_High CCxͨµÀÊä³ö¸ßµçƽÓÐЧ ((u16)0x0000) TIM_OCPolarity_Low CCxͨµÀÊä³öµÍµçƽÓÐЧ ((u16)0x0002) Àý£º

/* Selects the Polarity high for TIM2 channel 4 output compare */ TIM_OC1PolarityConfig(TIM2, TIM_OCPolarity_High); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, u16 TIM_OCPolarity) {

u16 tmpccer = 0;

/* Check the parameters */

assert_param(IS_TIM_123458_PERIPH(TIMx));

assert_param(IS_TIM_OC_POLARITY(TIM_OCPolarity));

tmpccer = TIMx->CCER;

/* Set or Reset the CC4P Bit */ tmpccer &= CCER_CC4P_Reset;

tmpccer |= (u16)(TIM_OCPolarity << 12); //²ÉÓÃOC1PµÄÖµ£¬OC2P¸ßOC1P 12λ

/* Write to TIMx CCER register */ TIMx->CCER = tmpccer; }

19.2.46 º¯ÊýTIM_UpdateRequestConfig

Table 533. º¯Êý TIM_UpdateRequestConfig º¯ÊýÃû TIM_UpdateRequestConfig º¯ÊýÔ­ÐÎ void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, u16 TIM_UpdateSource) ¹¦ÄÜÃèÊö ÉèÖÃTIMx¸üÐÂÇëÇóÔ´ ÊäÈë²ÎÊý1 TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,6,7,8À´Ñ¡ÔñTIMÍâÉè ÊäÈë²ÎÊý2 TIM_UpdateSource£ºTIM¸üÐÂÇëÇóÔ´ Êä³ö²ÎÊý ÎÞ ·µ»ØÖµ ÎÞ ÏȾöÌõ¼þ ÎÞ ±»µ÷Óú¯Êý ÎÞ TIM_UpdateSource£ºÑ¡ÔñTIM¸üÐÂÔ´¡£ Table 534. TIM_UpdateSourceÖµ ²ÎÊýTIM_UpdateSourceµÄÖµ ÃèÊö/CR1.0PM/[bit3] #defineÖµ TIM_UpdateSource_Global Éú³ÉÖØ¸´µÄÂö³å£ºÔÚ¸üÐÂʼþʱ¼ÆÊýÆ÷²»Í£Ö¹ 0x0008 TIM_UpdateSource_Regular Éú³Éµ¥Ò»µÄÂö³å£º¼ÆÊýÆ÷ÔÚÒ»¸ö¸üÐÂʼþÍ£Ö¹ 0x0000 Àý£º

/* Selects the regular update source for TIM2 */

TIM_UpdateRequestConfig(TIM2, TIM_UpdateSource_Regular); º¯ÊýÔ­ÐÍÈçÏ£º

void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, u16 TIM_UpdateSource) {

/* Check the parameters */

assert_param(IS_TIM_ALL_PERIPH(TIMx));

assert_param(IS_TIM_UPDATE_SOURCE(TIM_UpdateSource));

if (TIM_UpdateSource != TIM_UpdateSource_Global)//¸ù¾ÝÒ»´ÎÂö³å£¿Öظ´Âö³å£¿µÄÇé¿öÏÂÉèÖÃURS {

/* Set the URS Bit */

TIMx->CR1 |= CR1_URS_Set;//µ¼ÖÂÖжϻòDMAÇëÇóµÄUEV: ¼ÆÊýÆ÷Òç³ö/ÏÂÒç } else {

/* Reset the URS Bit */

TIMx->CR1 &= CR1_URS_Reset;

//µ¼ÖÂÖжϻòDMAÇëÇóµÄUEV:¡¾1¡¿.¼ÆÊýÆ÷Òç³ö/ÏÂÒ磻¡¾2¡¿.ÉèÖÃEGR.UGλ£»¡¾3¡¿.´Óģʽ¿ØÖÆÆ÷²úÉúµÄ¸üР} }

19.2.47 º¯ÊýTIM_SelectHallSensor Table 535. º¯ÊýTIM_SelectHallSensor º¯ÊýÃû º¯ÊýÔ­ÐÎ ¹¦ÄÜÃèÊö ÊäÈë²ÎÊý 1 ÊäÈë²ÎÊý 2 Êä³ö²ÎÊý ·µ»ØÖµ ÏȾöÌõ¼þ TIM_SelectHallSensor void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState Newstate) ʹÄÜ»òʧÄÜTIMx»ô¶û´«¸ÐÆ÷½Ó¿Ú TIMx£ºx ¿ÉÒÔÊÇ1,2,3,4,5,8À´Ñ¡ÔñTIMÍâÉè NewState£ºTIMx»ô¶û´«¸ÐÆ÷½Ó¿ÚµÄÐÂ״̬£¨ENABLE »ò DISABLE£© ÎÞ ÎÞ ÎÞ

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)