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

📄 stm32f10x_tim.c

📁 stm32f10xx的中文译文例程
💻 C
📖 第 1 页 / 共 5 页
字号:
  /* Write to TIMx CR1 register [写TIMx CR1 寄存器]*/
  TIMx->CR1 = tmpcr1;
}

/*******************************************************************************
* 函数名称: TIM_SelectInputTrigger
* 功能描述: 选择输入触发源
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIM_InputTriggerSource: 输入触发源.
*                    这个参数可以取下面的值之一:
*                       - TIM_TS_ITR0: 内部触发 0
*                       - TIM_TS_ITR1: 内部触发 1
*                       - TIM_TS_ITR2: 内部触发 2
*                       - TIM_TS_ITR3: 内部触发 3
*                       - TIM_TS_TI1F_ED: TI1 边沿检测
*                       - TIM_TS_TI1FP1: 过滤器时钟输入 1
*                       - TIM_TS_TI2FP2: 过滤器时钟输入 2
*                       - TIM_TS_ETRF: 扩展触发输入
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, u16 TIM_InputTriggerSource)
{
  u16 tmpsmcr = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_TRIGGER_SELECTION(TIM_InputTriggerSource));

  /* Get the TIMx SMCR register value [取得TIMx SMCR寄存器值]*/
  tmpsmcr = TIMx->SMCR;

  /* Reset the TS Bits [复位TS]*/
  tmpsmcr &= SMCR_TS_Mask;

  /* Set the Input Trigger source [设置输入中断源]*/
  tmpsmcr |= TIM_InputTriggerSource;

  /* Write to TIMx SMCR [写TIMx SMCR]*/
  TIMx->SMCR = tmpsmcr;
}

/*******************************************************************************
* 函数名称: TIM_EncoderInterfaceConfig
* 功能描述: 配置TIM的编码器接口
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)IM_EncoderMode:编码器模式.
*                    这个参数可以取下面的值之一:
*                       - TIM_EncoderMode_TI1: TIM编码器使用模式1.
*                       - TIM_EncoderMode_TI2: TIM编码器使用模式2.
*                       - TIM_EncoderMode_TI12:TIM编码器使用模式3.
*            (3)TIM_IC1Polarity: TI1的极性.
*                    这个参数可以取下面的值之一:
*                        - TIM_ICPolarity_Falling: 输入捕获下降沿.
*                        - TIM_ICPolarity_Rising: 输入捕获上升沿.
*            (4)TIM_IC2Polarity:TI2的极性.
*                    这个参数可以取下面的值之一:
*                        - TIM_ICPolarity_Falling: 输入捕获下降沿.
*                        - TIM_ICPolarity_Rising: 输入捕获上升沿.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, u16 TIM_EncoderMode,
                                u16 TIM_IC1Polarity, u16 TIM_IC2Polarity)
{
  u16 tmpsmcr = 0;
  u16 tmpccmr1 = 0;
  u16 tmpccer = 0;
    
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_ENCODER_MODE(TIM_EncoderMode));
  assert_param(IS_TIM_IC_POLARITY(TIM_IC1Polarity));
  assert_param(IS_TIM_IC_POLARITY(TIM_IC2Polarity));

  /* Get the TIMx SMCR register value [取得TIMx SMCR寄存器值]*/
  tmpsmcr = TIMx->SMCR;

  /* Get the TIMx CCMR1 register value [取得TIMx 捕获/比较模式寄存器1的寄存器值]*/
  tmpccmr1 = TIMx->CCMR1;

  /* Get the TIMx CCER register value [取得TIMx 捕获/比较使能寄存器的寄存器值]*/
  tmpccer = TIMx->CCER;

  /* Set the encoder Mode [设置编码模式]*/
  tmpsmcr &= SMCR_SMS_Mask;
  tmpsmcr |= TIM_EncoderMode;

  /* Select the Capture Compare 1 and the Capture Compare 2 as input [选择比较捕捉1和较捕捉2作为输入]*/
  tmpccmr1 &= CCMR_CC13S_Mask & CCMR_CC24S_Mask;
  tmpccmr1 |= CCMR_TI13Direct_Set | CCMR_TI24Direct_Set;

  /* Set the TI1 and the TI2 Polarities [设置TI1和TI2的极性]*/
  tmpccer &= CCER_CC1P_Reset & CCER_CC2P_Reset;
  tmpccer |= (TIM_IC1Polarity | (u16)(TIM_IC2Polarity << 4));

  /* Write to TIMx SMCR [写TIMx SMCR]*/
  TIMx->SMCR = tmpsmcr;

  /* Write to TIMx CCMR1 [写TIMx捕获/比较模式寄存器1]*/
  TIMx->CCMR1 = tmpccmr1;

  /* Write to TIMx CCER [写TIMx捕获/比较使能寄存器]*/
  TIMx->CCER = tmpccer;
}

/*******************************************************************************
* 函数名称: TIM_ForcedOC1Config
* 功能描述: 强制TIMx信道1的输出波形到有效电平或者无效电平.
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIM1_ForcedAction:指定对输出波形的强制行为..
*                    这个参数可以取下面的值之一:
*                       - TIM_ForcedAction_Active: 强制OCxREF为有效电平
*                       - TIM_ForcedAction_InActive: 强制OCxREF为无效电平.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction)
{
  u16 tmpccmr1 = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction));

  tmpccmr1 = TIMx->CCMR1;

  /* Reset the OC1M Bits [复位OC1M]*/
  tmpccmr1 &= CCMR_OC13M_Mask;

  /* Configure The Forced output Mode [配置强制输出模式]*/
  tmpccmr1 |= TIM_ForcedAction;

  /* Write to TIMx CCMR1 register [写TIMx CCMR1寄存器]*/
  TIMx->CCMR1 = tmpccmr1;
}

/*******************************************************************************
* 函数名称: TIM_ForcedOC2Config
* 功能描述: 强制TIMx信道2的输出波形到有效或无效电平。.
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIMx_ForcedAction:指定对输出波形的强制行为.
*                    这个参数可以取下面的值之一:
*                       - TIM_ForcedAction_Active: 强制OC2REF为有效电平
*                       - TIM_ForcedAction_InActive:强制OC2REF为无效电平
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction)
{
  u16 tmpccmr1 = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction));

  tmpccmr1 = TIMx->CCMR1;

  /* Reset the OC2M Bits [复位OC2M]*/
  tmpccmr1 &= CCMR_OC24M_Mask;

  /* Configure The Forced output Mode [配置强制输出模式]*/
  tmpccmr1 |= (u16)(TIM_ForcedAction << 8);

  /* Write to TIMx CCMR1 register [写TIMx CCMR1寄存器]*/
  TIMx->CCMR1 = tmpccmr1;
}

/*******************************************************************************
* 函数名称: TIM_ForcedOC3Config
* 功能描述: 强制TIMx信道3的输出波形到有效或无效电平。
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIMx_ForcedAction:指定对输出波形的强制行为.
*                    这个参数可以取下面的值之一:
*                       - TIM_ForcedAction_Active: 强制OC3REF为有效电平
*                       - TIM_ForcedAction_InActive:强制OC3REF为无效电平.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction)
{
  u16 tmpccmr2 = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction));

  tmpccmr2 = TIMx->CCMR2;

  /* Reset the OC1M Bits [复位OC1M]*/
  tmpccmr2 &= CCMR_OC13M_Mask;

  /* Configure The Forced output Mode [配置强制输出模式]*/
  tmpccmr2 |= TIM_ForcedAction;

  /* Write to TIMx CCMR2 register [写TIMx CCMR2寄存器]*/
  TIMx->CCMR2 = tmpccmr2;
}

/*******************************************************************************
* 函数名称: TIM_ForcedOC4Config
* 功能描述: 强制TIMx信道4的输出波形到有效或无效电平。
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIMx_ForcedAction:指定对输出波形的强制行为.
*                    这个参数可以取下面的值之一:
*                       - TIM_ForcedAction_Active: 强制OC4REF为有效电平
*                       - TIM_ForcedAction_InActive:强制OC4REF为无效电平.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, u16 TIM_ForcedAction)
{
  u16 tmpccmr2 = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_TIM_FORCED_ACTION(TIM_ForcedAction));
  tmpccmr2 = TIMx->CCMR2;

  /* Reset the OC2M Bits [复位OC2M]*/
  tmpccmr2 &= CCMR_OC24M_Mask;

  /* Configure The Forced output Mode [配置强制输出模式]*/
  tmpccmr2 |= (u16)(TIM_ForcedAction << 8);

  /* Write to TIMx CCMR2 register [写TIMx CCMR2寄存器]*/
  TIMx->CCMR2 = tmpccmr2;
}

/*******************************************************************************
* 函数名称: TIM_ARRPreloadConfig
* 功能描述: 使能或禁用TIMx外设ARR预载寄存器.
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)Newstate:在TIM1_CR1寄存器中的ARPE位的新状态.这个参数能够取:ENABLE或者DISABLE.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Set the ARR Preload Bit [置位ARR的预装载位]*/
    TIMx->CR1 |= CR1_ARPE_Set;
  }
  else
  {
    /* Reset the ARR Preload Bit [复位ARR的预装载位]*/
    TIMx->CR1 &= CR1_ARPE_Reset;
  }
}

/*******************************************************************************
* 函数名称: TIM_SelectCOM
* 功能描述: 选择TIM外围设备交换事件.
* 输入参数:(1)TIMx:此处x可以是1到8以选择外设.
*          (2)Newstate:交换事件的新状态.这个参数能够取:ENABLE或者DISABLE
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_18_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Set the COM Bit [置位COM位]*/
    TIMx->CR2 |= CR2_CCUS_Set;
  }
  else
  {
    /* Reset the COM Bit [复位COM位]*/
    TIMx->CR2 &= CR2_CCUS_Reset;
  }
}

/*******************************************************************************
* 函数名称: TIM_SelectCCDMA
* 功能描述: 选择TIMx外围设备捕获比较DMA源.
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)Newstate:捕获比较DMA源的新状态.这个参数能够取:ENABLE或者DISABLE.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Set the CCDS Bit [置位CCDS位]*/
    TIMx->CR2 |= CR2_CCDS_Set;
  }
  else
  

⌨️ 快捷键说明

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