⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_tim.lst

📁 ek-stm32f开发板测试程序,LCD+LED+按键
💻 LST
📖 第 1 页 / 共 5 页
字号:
    183          *                    TIM peripheral.
    184          * Output         : None
    185          * Return         : None
    186          *******************************************************************************/
    187          void TIM_OCInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
    188          {
    189            u32 tmpccmrx = 0, tmpccer = 0;
    190            
    191            /* Check the parameters */
    192            assert(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode));
    193            assert(IS_TIM_CHANNEL(TIM_OCInitStruct->TIM_Channel));
    194            assert(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity));
    195          
    196            tmpccer = TIMx->CCER;
    197          
    198            if ((TIM_OCInitStruct->TIM_Channel == (u16)TIM_Channel_1) ||
    199                (TIM_OCInitStruct->TIM_Channel == (u16)TIM_Channel_2))
    200            {
    201              tmpccmrx = TIMx->CCMR1;
    202              
    203              /* Reset the Output Compare Bits */
    204              tmpccmrx &= Tab_OCModeMask[TIM_OCInitStruct->TIM_Channel];
    205          
    206              /* Set the Output Polarity level */
    207              tmpccer &= Tab_PolarityMask[TIM_OCInitStruct->TIM_Channel];
    208          
    209              if (TIM_OCInitStruct->TIM_Channel == TIM_Channel_1)
    210              {
    211                /* Disable the Channel 1: Reset the CCE Bit */
    212                TIMx->CCER &= CCER_CC1E_Reset;
    213          
    214                /* Select the Output Compare Mode */
    215                tmpccmrx |= TIM_OCInitStruct->TIM_OCMode;
    216          
    217                /* Set the Capture Compare Register value */
    218                TIMx->CCR1 = TIM_OCInitStruct->TIM_Pulse;
    219          
    220                /* Set the Capture Compare Enable Bit */
    221                tmpccer |= CCER_CC1E_Set;
    222          
    223                /* Set the Capture Compare Polarity */
    224                tmpccer |= TIM_OCInitStruct->TIM_OCPolarity;
    225              }
    226              else /* TIM_Channel_2 */
    227              {
    228                /* Disable the Channel 2: Reset the CCE Bit */
    229                TIMx->CCER &= CCER_CC2E_Reset;
    230          
    231                /* Select the Output Compare Mode */
    232                tmpccmrx |= (u32)TIM_OCInitStruct->TIM_OCMode << 8;
    233          
    234                /* Set the Capture Compare Register value */
    235                TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse;
    236          
    237                /* Set the Capture Compare Enable Bit */
    238                tmpccer |= CCER_CC2E_Set;
    239          
    240                /* Set the Capture Compare Polarity */
    241                tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 4;
    242              }
    243          
    244              TIMx->CCMR1 = (u16)tmpccmrx;
    245            }
    246            else 
    247            {
    248              if ((TIM_OCInitStruct->TIM_Channel == TIM_Channel_3) ||
    249                  (TIM_OCInitStruct->TIM_Channel == TIM_Channel_4))
    250              { 
    251                tmpccmrx = TIMx->CCMR2;
    252          
    253                /* Reset the Output Compare Bits */
    254                tmpccmrx &= Tab_OCModeMask[TIM_OCInitStruct->TIM_Channel];
    255          
    256                /* Set the Output Polarity level */
    257                tmpccer &= Tab_PolarityMask[TIM_OCInitStruct->TIM_Channel];
    258          
    259                if (TIM_OCInitStruct->TIM_Channel == TIM_Channel_3)
    260                {
    261                  /* Disable the Channel 3: Reset the CCE Bit */
    262                  TIMx->CCER &= CCER_CC3E_Reset;
    263          
    264                  /* Select the Output Compare Mode */
    265                  tmpccmrx |= TIM_OCInitStruct->TIM_OCMode;
    266          
    267                  /* Set the Capture Compare Register value */
    268                  TIMx->CCR3 = TIM_OCInitStruct->TIM_Pulse;
    269          
    270                  /* Set the Capture Compare Enable Bit */
    271                  tmpccer |= CCER_CC3E_Set;
    272          
    273                  /* Set the Capture Compare Polarity */
    274                  tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 8;
    275                }
    276                else  /* TIM_Channel_4 */
    277                {
    278                  /* Disable the Channel 4: Reset the CCE Bit */
    279                  TIMx->CCER &= CCER_CC4E_Reset;
    280          
    281                 /* Select the Output Compare Mode */
    282                  tmpccmrx |= (u32)TIM_OCInitStruct->TIM_OCMode << 8;
    283          
    284                  /* Set the Capture Compare Register value */
    285                  TIMx->CCR4 = TIM_OCInitStruct->TIM_Pulse;
    286          
    287                  /* Set the Capture Compare Enable Bit */
    288                  tmpccer |= CCER_CC4E_Set;
    289          
    290                  /* Set the Capture Compare Polarity */
    291                  tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 12;
    292                }
    293          
    294                TIMx->CCMR2 = (u16)tmpccmrx;
    295              }
    296            }
    297            
    298            TIMx->CCER = (u16)tmpccer;
    299          }
    300          
    301          /*******************************************************************************
    302          * Function Name  : TIM_ICInit
    303          * Description    : Initializes the TIMx peripheral according to the specified
    304          *                  parameters in the TIM_ICInitStruct.
    305          * Input          : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
    306          *                  - TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure
    307          *                    that contains the configuration information for the specified
    308          *                    TIM peripheral.
    309          * Output         : None
    310          * Return         : None
    311          *******************************************************************************/
    312          void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
    313          {
    314            /* Check the parameters */
    315            assert(IS_TIM_IC_MODE(TIM_ICInitStruct->TIM_ICMode));
    316            assert(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
    317            assert(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
    318            assert(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
    319            assert(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
    320            assert(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
    321            
    322            if (TIM_ICInitStruct->TIM_ICMode == TIM_ICMode_ICAP)
    323            {
    324              if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
    325              {
    326                /* TI1 Configuration */
    327                TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
    328                           TIM_ICInitStruct->TIM_ICSelection,
    329                           TIM_ICInitStruct->TIM_ICFilter);
    330          
    331                /* Set the Input Capture Prescaler value */
    332                TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
    333              }
    334              else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
    335              {
    336                /* TI2 Configuration */
    337                TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
    338                           TIM_ICInitStruct->TIM_ICSelection,
    339                           TIM_ICInitStruct->TIM_ICFilter);
    340          
    341                /* Set the Input Capture Prescaler value */
    342                TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
    343              }
    344              else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
    345              {
    346                /* TI3 Configuration */
    347                TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
    348                           TIM_ICInitStruct->TIM_ICSelection,
    349                           TIM_ICInitStruct->TIM_ICFilter);
    350          
    351                /* Set the Input Capture Prescaler value */
    352                TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
    353              }
    354              else /* TIM_Channel_4 */
    355              {
    356                /* TI4 Configuration */
    357                TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
    358                           TIM_ICInitStruct->TIM_ICSelection,
    359                           TIM_ICInitStruct->TIM_ICFilter);
    360          
    361                /* Set the Input Capture Prescaler value */
    362                TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
    363              }
    364            }
    365            else
    366            {
    367              PWMI_Config(TIMx, TIM_ICInitStruct);
    368            }
    369          }
    370          
    371          /*******************************************************************************
    372          * Function Name  : TIM_TimeBaseStructInit
    373          * Description    : Fills each TIM_TimeBaseInitStruct member with its default value.
    374          * Input          : - TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef
    375          *                    structure which will be initialized.
    376          * Output         : None
    377          * Return         : None
    378          *******************************************************************************/
    379          void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
    380          {
    381            /* Set the default configuration */
    382            TIM_TimeBaseInitStruct->TIM_Period = TIM_Period_Reset_Mask;
    383            TIM_TimeBaseInitStruct->TIM_Prescaler = TIM_Prescaler_Reset_Mask;
    384            TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
    385            TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
    386          }
    387          
    388          /*******************************************************************************
    389          * Function Name  : TIM_OCStructInit
    390          * Description    : Fills each TIM_OCInitStruct member with its default value.
    391          * Input          : - TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure
    392          *                    which will be initialized.
    393          * Output         : None
    394          * Return         : None
    395          *******************************************************************************/
    396          void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct)
    397          {
    398            /* Set the default configuration */
    399            TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
    400            TIM_OCInitStruct->TIM_Channel = TIM_Channel_1;
    401            TIM_OCInitStruct->TIM_Pulse = TIM_Pulse_Reset_Mask;
    402            TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
    403          }
    404          
    405          /*******************************************************************************
    406          * Function Name  : TIM_ICStructInit

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -