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

📄 stm32f10x_tim.c

📁 stm32f10xx的中文译文例程
💻 C
📖 第 1 页 / 共 5 页
字号:
*           (2)TIM_ICInitStruct:指向一个包含特定TIMx外设的配置信息的TIM_ICInitTypeDef结构的指针.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
{
  u16 icoppositepolarity = TIM_ICPolarity_Rising;
  u16 icoppositeselection = TIM_ICSelection_DirectTI;

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

  /* Select the Opposite Input Polarity [选择相反的输入极性]*/
  if (TIM_ICInitStruct->TIM_ICPolarity == TIM_ICPolarity_Rising)
  {
    icoppositepolarity = TIM_ICPolarity_Falling;
  }
  else
  {
    icoppositepolarity = TIM_ICPolarity_Rising;
  }

  /* Select the Opposite Input [选择相反的输入]*/
  if (TIM_ICInitStruct->TIM_ICSelection == TIM_ICSelection_DirectTI)
  {
    icoppositeselection = TIM_ICSelection_IndirectTI;
  }
  else
  {
    icoppositeselection = TIM_ICSelection_DirectTI;
  }

  if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
  {
    /* TI1 Configuration [TI1配置]*/
    TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
               TIM_ICInitStruct->TIM_ICFilter);

    /* Set the Input Capture Prescaler value [设置输入捕捉预分频器值]*/
    TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);

    /* TI2 Configuration [TI2配置]*/
    TI2_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);

    /* Set the Input Capture Prescaler value [设置输入捕捉预分频器值]*/
    TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
  }
  else
  { 
    /* TI2 Configuration [TI2配置]*/
    TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity, TIM_ICInitStruct->TIM_ICSelection,
               TIM_ICInitStruct->TIM_ICFilter);

    /* Set the Input Capture Prescaler value [设置输入捕捉预分频器值]*/
    TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);

    /* TI1 Configuration [TI1配置]*/
    TI1_Config(TIMx, icoppositepolarity, icoppositeselection, TIM_ICInitStruct->TIM_ICFilter);

    /* Set the Input Capture Prescaler value [设置输入捕捉预分频器值]*/
    TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
  }
}

/*******************************************************************************
* 函数名称: TIM_BDTRConfig
* 功能描述: 配置:间断特征,滞后时间,锁级别,OSSI,OSSR状态和AOE(自动输出使能).
* 输入参数:(1)TIMx:此处x可以是1到8以选择外设.
*          (2)TIM_BDTRInitStruct:指向一个包含特定TIMx外设的配置信息的TIM_BDTRInitTypeDef结构的指针.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInitStruct)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_18_PERIPH(TIMx));
  assert_param(IS_TIM_OSSR_STATE(TIM_BDTRInitStruct->TIM_OSSRState));
  assert_param(IS_TIM_OSSI_STATE(TIM_BDTRInitStruct->TIM_OSSIState));
  assert_param(IS_TIM_LOCK_LEVEL(TIM_BDTRInitStruct->TIM_LOCKLevel));
  assert_param(IS_TIM_BREAK_STATE(TIM_BDTRInitStruct->TIM_Break));
  assert_param(IS_TIM_BREAK_POLARITY(TIM_BDTRInitStruct->TIM_BreakPolarity));
  assert_param(IS_TIM_AUTOMATIC_OUTPUT_STATE(TIM_BDTRInitStruct->TIM_AutomaticOutput));

  /* Set the Lock level, the Break enable Bit and the Polarity, the OSSR State,
  the OSSI State, the dead time value and the Automatic Output Enable Bit [配置:锁级别,间断允许位和极性,OSSR状态,OSSI状态,滞后时间和自动输出使能位]*/

  TIMx->BDTR = (u32)TIM_BDTRInitStruct->TIM_OSSRState | TIM_BDTRInitStruct->TIM_OSSIState |
             TIM_BDTRInitStruct->TIM_LOCKLevel | TIM_BDTRInitStruct->TIM_DeadTime |
             TIM_BDTRInitStruct->TIM_Break | TIM_BDTRInitStruct->TIM_BreakPolarity |
             TIM_BDTRInitStruct->TIM_AutomaticOutput;

}

/*******************************************************************************
* 函数名称: TIM_TimeBaseStructInit
* 功能描述: 使用缺省值填充TIM_TimeBaseInitStruct的每一个成员.
* 输入参数: TIM_TimeBaseInitStruct:指向一个将被初始化的TIM_TimeBaseInitTypeDef结构的指针
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
{
  /* Set the default configuration [设置成默认配置]*/
  TIM_TimeBaseInitStruct->TIM_Period = 0xFFFF;
  TIM_TimeBaseInitStruct->TIM_Prescaler = 0x0000;
  TIM_TimeBaseInitStruct->TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBaseInitStruct->TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInitStruct->TIM_RepetitionCounter = 0x0000;
}

/*******************************************************************************
* 函数名称: TIM_OCStructInit
* 功能描述: 使用缺省值填充TIM_OCInitStruct的每一个成员
* 输入参数: TIM_OCInitStruct:指向一个将被初始化的TIM_OCInitStruct结构的指针.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct)
{
  /* Set the default configuration [设置成默认配置]*/
  TIM_OCInitStruct->TIM_OCMode = TIM_OCMode_Timing;
  TIM_OCInitStruct->TIM_OutputState = TIM_OutputState_Disable;
  TIM_OCInitStruct->TIM_OutputNState = TIM_OutputNState_Disable;
  TIM_OCInitStruct->TIM_Pulse = 0x0000;
  TIM_OCInitStruct->TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OCInitStruct->TIM_OCNPolarity = TIM_OCPolarity_High;
  TIM_OCInitStruct->TIM_OCIdleState = TIM_OCIdleState_Reset;
  TIM_OCInitStruct->TIM_OCNIdleState = TIM_OCNIdleState_Reset;
}

/*******************************************************************************
* 函数名称: TIM_ICStructInit
* 功能描述: 使用缺省值填充TIM_ICInitStruct的每一个成员.
* 输入参数: TIM_ICInitStruct:指向一个将被初始化的TIM_ICInitStruct结构的指针.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct)
{
  /* Set the default configuration [设置成默认配置]*/
  TIM_ICInitStruct->TIM_Channel = TIM_Channel_1;
  TIM_ICInitStruct->TIM_ICPolarity = TIM_ICPolarity_Rising;
  TIM_ICInitStruct->TIM_ICSelection = TIM_ICSelection_DirectTI;
  TIM_ICInitStruct->TIM_ICPrescaler = TIM_ICPSC_DIV1;
  TIM_ICInitStruct->TIM_ICFilter = 0x00;
}

/*******************************************************************************
* 函数名称: TIM_BDTRStructInit
* 功能描述: 将TIM1_BDTRStruct中的成员赋为默认值.
* 输入参数: TIM1_BDTRInitStruct:指向一个将被初始化的TIM1_BDTRInitStruct结构体。
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct)
{
  /* Set the default configuration [设置成默认配置]*/
  TIM_BDTRInitStruct->TIM_OSSRState = TIM_OSSRState_Disable;
  TIM_BDTRInitStruct->TIM_OSSIState = TIM_OSSIState_Disable;
  TIM_BDTRInitStruct->TIM_LOCKLevel = TIM_LOCKLevel_OFF;
  TIM_BDTRInitStruct->TIM_DeadTime = 0x00;
  TIM_BDTRInitStruct->TIM_Break = TIM_Break_Disable;
  TIM_BDTRInitStruct->TIM_BreakPolarity = TIM_BreakPolarity_Low;
  TIM_BDTRInitStruct->TIM_AutomaticOutput = TIM_AutomaticOutput_Disable;
}

/*******************************************************************************
* 函数名称: TIM_Cmd
* 功能描述: 使能或关闭特定的TIM外设.
* 输入参数: (1)TIMx:此处x可以是1到8以选择外设.
*           (2)NewState:此TIM外设的新状态,该参数可以是ENABLE或DISABLE。
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  
  if (NewState != DISABLE)
  {
    /* Enable the TIM Counter [允许tim计数器]*/
    TIMx->CR1 |= CR1_CEN_Set;
  }
  else
  {
    /* Disable the TIM Counter [禁止tim计数器]*/
    TIMx->CR1 &= CR1_CEN_Reset;
  }
}

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

  if (NewState != DISABLE)
  {
    /* Enable the TIM Main Output [允许TIM主输出]*/
    TIMx->BDTR |= BDTR_MOE_Set;
  }
  else
  {
    /* Disable the TIM Main Output [禁止TIM主输出]*/
    TIMx->BDTR &= BDTR_MOE_Reset;
  }  
}

/*******************************************************************************
* 函数名称: TIM_ITConfig
* 功能描述: 使能或关闭特定的TIM中断.
* 输入参数: (1)TIMx:此处x可以是1到8以选择外设.
*           (2)TIM_IT: 将被使能或关闭的TIM中断源。
*                    TIM_IT这个参数允许的值:
*                       - TIM_IT_Update: TIM更新中断源
*                       - TIM_IT_CC1: TIM捕获/比较1中断源
*                       - TIM_IT_CC2: TIM捕获/比较2中断源
*                       - TIM_IT_CC3: TIM捕获/比较3中断源
*                       - TIM_IT_CC4: TIM捕获/比较4中断源
*                       - TIM_IT_COM: TIM 交换中断源
*                       - TIM_IT_Trigger: TIM触发器中断源
*                       - TIM_IT_Break: TIM1间断中断源
*           (3)NewState:特定TIM1中断的新状态。这个参数能够取:ENABLE或者DISABLE
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_ITConfig(TIM_TypeDef* TIMx, u16 TIM_IT, FunctionalState NewState)
{  
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_ALL_PERIPH(TIMx));
  assert_param(IS_TIM_IT(TIM_IT));
  assert_param(IS_TIM_PERIPH_IT((TIMx), (TIM_IT)));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  
  if (NewState != DISABLE)
  {
    /* Enable the Interrupt sources [允许中断源]*/
    TIMx->DIER |= TIM_IT;
  }
  else
  {
    /* Disable the Interrupt sources [禁止中断源]*/
    TIMx->DIER &= (u16)~TIM_IT;
  }
}

/*******************************************************************************
* 函数名称: TIM_GenerateEvent
* 功能描述: 配置将由软件引发的TIM事件.
* 输入参数: (1)TIMx:此处x可以是1到8以选择外设.
*           TIM1_EventSource:指明TIM1软件事件源。
*                    这个参数可以取下面的值之一:    
*                       - TIM_EventSource_Update: 定时器更新事件源
*                       - TIM_EventSource_CC1: 定时器比较捕捉1事件源
*                       - TIM_EventSource_CC2: 定时器比较捕捉2事件源
*                       - TIM_EventSource_CC3: 定时器比较捕捉3事件源
*                       - TIM_EventSource_CC4: 定时器比较捕捉4事件源
*                       - 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;
}

/*******************************************************************************
* 函数名称: TIM_DMAConfig
* 功能描述: 配置某个TIM的DMA接口.
* 输入参数: (1)TIMx:此处x可以是1,2,3,4,5或8以选择外设.
*           (2)TIM_DMABase: DMA基址。
*                    这个参数可以取下面的值之一:
*                       - TIM_DMABase_CR, TIM_DMABase_CR2, TIM_DMABase_SMCR,
*                         TIM_DMABase_DIER, TIM1_DMABase_SR, TIM_DMABase_EGR,
*                         TIM_DMABase_CCMR1, TIM_DMABase_CCMR2, TIM_DMABase_CCER,
*                         TIM_DMABase_CNT, TIM_DMABase_PSC, TIM_DMABase_ARR,
*                         TIM_DMABase_RCR, TIM_DMABase_CCR1, TIM_DMABase_CCR2,
*                         TIM_DMABase_CCR3, TIM_DMABase_CCR4, TIM_DMABase_BDTR,
*                         TIM_DMABase_DCR.
*           (3)TIM_DMABurstLength: DMA猝发长度。
*                     这个参数可以取下面两个值之一:
*                     TIM_DMABurstLength_1Byte and TIM_DMABurstLength_18Bytes.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void TIM_DMAConfig(TIM_TypeDef* TIMx, u16 TIM_DMABase, u16 TIM_DMABurstLength)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_TIM_123458_PERIPH(TIMx));

⌨️ 快捷键说明

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