亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? stm32f10x_tim1.c

?? STM32利用正交編碼器實(shí)現(xiàn)電機(jī)的控制
?? C
?? 第 1 頁 / 共 5 頁
字號:

    /* Set the Input Capture Prescaler value */
    TIM1_SetIC4Prescaler(TIM1_ICInitStruct->TIM1_ICPrescaler);
  }
}

/*******************************************************************************
* Function Name  : TIM1_PWMIConfig
* Description    : Configures the TIM1 peripheral in PWM Input Mode according 
*                  to the specified parameters in the TIM1_ICInitStruct.
* Input          : - TIM1_ICInitStruct: pointer to a TIM1_ICInitTypeDef structure
*                    that contains the configuration information for the specified
*                    TIM1 peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_PWMIConfig(TIM1_ICInitTypeDef* TIM1_ICInitStruct)
{
  u8 ICPolarity = TIM1_ICPolarity_Rising;
  u8 ICSelection = TIM1_ICSelection_DirectTI;

  /* Check the parameters */
  assert(IS_TIM1_PWMI_CHANNEL(TIM1_ICInitStruct->TIM1_Channel));
  assert(IS_TIM1_IC_POLARITY(TIM1_ICInitStruct->TIM1_ICPolarity));
  assert(IS_TIM1_IC_SELECTION(TIM1_ICInitStruct->TIM1_ICSelection));
  assert(IS_TIM1_IC_PRESCALER(TIM1_ICInitStruct->TIM1_ICPrescaler));

  /* Select the Opposite Input Polarity */
  if (TIM1_ICInitStruct->TIM1_ICPolarity == TIM1_ICPolarity_Rising)
  {
    ICPolarity = TIM1_ICPolarity_Falling;
  }
  else
  {
    ICPolarity = TIM1_ICPolarity_Rising;
  }

  /* Select the Opposite Input */
  if (TIM1_ICInitStruct->TIM1_ICSelection == TIM1_ICSelection_DirectTI)
  {
    ICSelection = TIM1_ICSelection_IndirectTI;
  }
  else
  {
    ICSelection = TIM1_ICSelection_DirectTI;
  }

  if (TIM1_ICInitStruct->TIM1_Channel == TIM1_Channel_1)
  {
    /* TI1 Configuration */
    TI1_Config(TIM1_ICInitStruct->TIM1_ICPolarity, TIM1_ICInitStruct->TIM1_ICSelection,
               TIM1_ICInitStruct->TIM1_ICFilter);

    /* Set the Input Capture Prescaler value */
    TIM1_SetIC1Prescaler(TIM1_ICInitStruct->TIM1_ICPrescaler);

    /* TI2 Configuration */
    TI2_Config(ICPolarity, ICSelection, TIM1_ICInitStruct->TIM1_ICFilter);

    /* Set the Input Capture Prescaler value */
    TIM1_SetIC2Prescaler(TIM1_ICInitStruct->TIM1_ICPrescaler);
  }
  else
  {	 
    /* TI2 Configuration */
    TI2_Config(TIM1_ICInitStruct->TIM1_ICPolarity, TIM1_ICInitStruct->TIM1_ICSelection,
               TIM1_ICInitStruct->TIM1_ICFilter);

    /* Set the Input Capture Prescaler value */
    TIM1_SetIC2Prescaler(TIM1_ICInitStruct->TIM1_ICPrescaler);

    /* TI1 Configuration */
    TI1_Config(ICPolarity, ICSelection, TIM1_ICInitStruct->TIM1_ICFilter);

    /* Set the Input Capture Prescaler value */
    TIM1_SetIC1Prescaler(TIM1_ICInitStruct->TIM1_ICPrescaler);
  }
}
/*******************************************************************************
* Function Name  : TIM1_OCStructInit
* Description    : Fills each TIM1_OCInitStruct member with its default value.
* Input          : - TIM1_OCInitStruct : pointer to a TIM1_OCInitTypeDef structure
*                    which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_OCStructInit(TIM1_OCInitTypeDef* TIM1_OCInitStruct)
{
  /* Set the default configuration */
  TIM1_OCInitStruct->TIM1_OCMode = TIM1_OCMode_Timing;
  TIM1_OCInitStruct->TIM1_OutputState = TIM1_OutputState_Disable;
  TIM1_OCInitStruct->TIM1_OutputNState = TIM1_OutputNState_Disable;
  TIM1_OCInitStruct->TIM1_Pulse = TIM1_Pulse_Reset_Mask;
  TIM1_OCInitStruct->TIM1_OCPolarity = TIM1_OCPolarity_High;
  TIM1_OCInitStruct->TIM1_OCNPolarity = TIM1_OCPolarity_High;
  TIM1_OCInitStruct->TIM1_OCIdleState = TIM1_OCIdleState_Reset;
  TIM1_OCInitStruct->TIM1_OCNIdleState = TIM1_OCNIdleState_Reset;
}

/*******************************************************************************
* Function Name  : TIM1_ICStructInit
* Description    : Fills each TIM1_ICInitStruct member with its default value.
* Input          : - TIM1_ICInitStruct : pointer to a TIM1_ICInitTypeDef structure
*                    which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_ICStructInit(TIM1_ICInitTypeDef* TIM1_ICInitStruct)
{
  /* Set the default configuration */
  TIM1_ICInitStruct->TIM1_Channel = TIM1_Channel_1;
  TIM1_ICInitStruct->TIM1_ICSelection = TIM1_ICSelection_DirectTI;
  TIM1_ICInitStruct->TIM1_ICPolarity = TIM1_ICPolarity_Rising;
  TIM1_ICInitStruct->TIM1_ICPrescaler = TIM1_ICPSC_DIV1;
  TIM1_ICInitStruct->TIM1_ICFilter = TIM1_ICFilter_Mask;
}

/*******************************************************************************
* Function Name  : TIM1_TimeBaseStructInit
* Description    : Fills each TIM1_TimeBaseInitStruct member with its default value.
* Input          : - TIM1_TimeBaseInitStruct : pointer to a TIM1_TimeBaseInitTypeDef
*                    structure which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_TimeBaseStructInit(TIM1_TimeBaseInitTypeDef* TIM1_TimeBaseInitStruct)
{
  /* Set the default configuration */
  TIM1_TimeBaseInitStruct->TIM1_Period = TIM1_Period_Reset_Mask;
  TIM1_TimeBaseInitStruct->TIM1_Prescaler = TIM1_Prescaler_Reset_Mask;
  TIM1_TimeBaseInitStruct->TIM1_ClockDivision = TIM1_CKD_DIV1;
  TIM1_TimeBaseInitStruct->TIM1_CounterMode = TIM1_CounterMode_Up;
  TIM1_TimeBaseInitStruct->TIM1_RepetitionCounter = TIM1_RepetitionCounter_Reset_Mask;
}

/*******************************************************************************
* Function Name  : TIM1_BDTRStructInit
* Description    : Fills each TIM1_BDTRInitStruct member with its default value.
* Input          : - TIM1_BDTRInitStruct : pointer to a TIM1_BDTRInitTypeDef
*                    structure which will be initialized.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_BDTRStructInit(TIM1_BDTRInitTypeDef* TIM1_BDTRInitStruct)
{
  /* Set the default configuration */
  TIM1_BDTRInitStruct->TIM1_OSSRState = TIM1_OSSRState_Disable;
  TIM1_BDTRInitStruct->TIM1_OSSIState = TIM1_OSSIState_Disable;
  TIM1_BDTRInitStruct->TIM1_LOCKLevel = TIM1_LOCKLevel_OFF;
  TIM1_BDTRInitStruct->TIM1_DeadTime = TIM1_DeadTime_Reset_Mask;
  TIM1_BDTRInitStruct->TIM1_Break = TIM1_Break_Disable;
  TIM1_BDTRInitStruct->TIM1_BreakPolarity = TIM1_BreakPolarity_Low;
  TIM1_BDTRInitStruct->TIM1_AutomaticOutput = TIM1_AutomaticOutput_Disable;
}

/*******************************************************************************
* Function Name  : TIM1_Cmd
* Description    : Enables or disables the TIM1 peripheral.
* Input          : - Newstate: new state of the TIM1 peripheral.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_Cmd(FunctionalState NewState)
{
  /* Check the parameters */
  assert(IS_FUNCTIONAL_STATE(NewState));

  /* set or Reset the CEN Bit */
  *(vu32 *) CR1_CEN_BB = (u16)NewState;
}

/*******************************************************************************
* Function Name  : TIM1_CtrlPWMOutputs
* Description    : Enables or disables the TIM1 peripheral Main Outputs.
* Input          : - Newstate: new state of the TIM1 peripheral Main Outputs.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_CtrlPWMOutputs(FunctionalState Newstate)
{
  /* Check the parameters */
  assert(IS_FUNCTIONAL_STATE(Newstate));

  /* Set or Reset the MOE Bit */
  *(vu32 *) BDTR_MOE_BB = (u16)Newstate;
}

/*******************************************************************************
* Function Name  : TIM1_ITConfig
* Description    : Enables or disables the specified TIM1 interrupts.
* Input          : - TIM1_IT: specifies the TIM1 interrupts sources to be enabled
*                    or disabled.
*                    This parameter can be any combination of the following values:
*                       - TIM1_IT_Update: TIM1 update Interrupt source
*                       - TIM1_IT_CC1: TIM1 Capture Compare 1 Interrupt source
*                       - TIM1_IT_CC2: TIM1 Capture Compare 2 Interrupt source
*                       - TIM1_IT_CC3: TIM1 Capture Compare 3 Interrupt source
*                       - TIM1_IT_CC4: TIM1 Capture Compare 4 Interrupt source
*                       - TIM1_IT_CCUpdate: TIM1 Capture Compare Update Interrupt
*                         source
*                       - TIM1_IT_Trigger: TIM1 Trigger Interrupt source
*                       - TIM1_IT_Break: TIM1 Break Interrupt source
*                  - Newstate: new state of the TIM1 interrupts.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_ITConfig(u16 TIM1_IT, FunctionalState NewState)
{
  /* Check the parameters */
  assert(IS_TIM1_IT(TIM1_IT));
  assert(IS_FUNCTIONAL_STATE(NewState));

  if (NewState == ENABLE)
  {
    /* Enable the Interrupt sources */
    TIM1->DIER |= TIM1_IT;
  }
  else
  {
    /* Disable the Interrupt sources */
    TIM1->DIER &= (u16)~TIM1_IT;
  }
}

/*******************************************************************************
* Function Name  : TIM1_DMAConfig
* Description    : Configures the TIM1抯 DMA interface.
* Input          : - TIM1_DMABase: DMA Base address.
*                    This parameter can be one of the following values:
*                       - TIM1_DMABase_CR1, TIM1_DMABase_CR2, TIM1_DMABase_SMCR,
*                         TIM1_DMABase_DIER, TIM1_DMABase_SR, TIM1_DMABase_EGR,
*                         TIM1_DMABase_CCMR1, TIM1_DMABase_CCMR2, TIM1_DMABase_CCER,
*                         TIM1_DMABase_CNT, TIM1_DMABase_PSC, TIM1_DMABase_ARR,
*                         TIM1_DMABase_RCR, TIM1_DMABase_CCR1, TIM1_DMABase_CCR2,
*                         TIM1_DMABase_CCR3, TIM1_DMABase_CCR4, TIM1_DMABase_BDTR,
*                         TIM1_DMABase_DCR.
*                   - TIM1_DMABurstLength: DMA Burst length.
*                     This parameter can be one value between:
*                     TIM1_DMABurstLength_1Byte and TIM1_DMABurstLength_18Bytes.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_DMAConfig(u16 TIM1_DMABase, u16 TIM1_DMABurstLength)
{
  u32 tmpdcr = 0;

  /* Check the parameters */
  assert(IS_TIM1_DMA_BASE(TIM1_DMABase));
  assert(IS_TIM1_DMA_LENGTH(TIM1_DMABurstLength));

  tmpdcr = TIM1->DCR;

  /* Reset the DBA and the DBL Bits */
  tmpdcr &= DCR_DMA_Mask;

  /* Set the DMA Base and the DMA Burst Length */
  tmpdcr |= TIM1_DMABase | TIM1_DMABurstLength;

  TIM1->DCR = (u16)tmpdcr;
}

/*******************************************************************************
* Function Name  : TIM1_DMACmd
* Description    : Enables or disables the TIM1抯 DMA Requests.
* Input          : - TIM1_DMASources: specifies the DMA Request sources.
*                    This parameter can be any combination of the following values:
*                       - TIM1_DMA_Update: TIM1 update Interrupt source
*                       - TIM1_DMA_CC1: TIM1 Capture Compare 1 DMA source
*                       - TIM1_DMA_CC2: TIM1 Capture Compare 2 DMA source
*                       - TIM1_DMA_CC3: TIM1 Capture Compare 3 DMA source
*                       - TIM1_DMA_CC4: TIM1 Capture Compare 4 DMA source
*                       - TIM1_DMA_COM: TIM1 Capture Compare Update DMA
*                         source
*                       - TIM1_DMA_Trigger: TIM1 Trigger DMA source
*                  - Newstate: new state of the DMA Request sources.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_DMACmd(u16 TIM1_DMASource, FunctionalState Newstate)
{
  u32 tmpdier = 0;

  /* Check the parameters */
  assert(IS_TIM1_DMA_SOURCE(TIM1_DMASource));
  assert(IS_FUNCTIONAL_STATE(Newstate));

  tmpdier = TIM1->DIER;

  if (Newstate == ENABLE)
  {
    /* Enable the DMA sources */
    tmpdier |= TIM1_DMASource;
  }
  else
  {
    /* Disable the DMA sources */
    tmpdier &= (u16)~TIM1_DMASource;
  }
  TIM1->DIER = (u16)tmpdier;
}

/*******************************************************************************
* Function Name  : TIM1_InternalClockConfig
* Description    : Configures the TIM1 interrnal Clock
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void TIM1_InternalClockConfig(void)
{
  /* Disable slave mode to clock the prescaler directly with the internal clock */
  TIM1->SMCR &=  SMCR_SMS_Mask;
}
/*******************************************************************************

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久蜜臀 | 精品国产一二三区| 亚洲动漫第一页| 色婷婷狠狠综合| 亚洲444eee在线观看| 日韩午夜在线影院| 国产自产v一区二区三区c| 91精品国产综合久久福利| 狠狠色2019综合网| 国产精品理论在线观看| 日本高清成人免费播放| 首页亚洲欧美制服丝腿| 精品国免费一区二区三区| 高清久久久久久| 亚洲自拍都市欧美小说| 精品国产sm最大网站| 成人福利视频在线看| 亚洲综合一区二区三区| 欧美一级精品在线| 北条麻妃一区二区三区| 午夜在线成人av| 国产亚洲一区字幕| 91啦中文在线观看| 蜜臀av一区二区在线观看| 国产精品久久久久久久久图文区| 五月婷婷色综合| 欧美一卡二卡三卡四卡| 成人免费va视频| 午夜精品国产更新| 久久精品视频在线免费观看| 欧美日韩激情一区二区三区| 国产一区二区伦理片| 夜夜嗨av一区二区三区四季av| 成人晚上爱看视频| 亚洲成人中文在线| 欧美制服丝袜第一页| 国产成人精品综合在线观看| 天堂精品中文字幕在线| 国产精品网友自拍| 7777女厕盗摄久久久| 国产精品一区二区91| 午夜久久电影网| 亚洲欧美另类小说视频| 2021久久国产精品不只是精品| 狠狠色丁香婷综合久久| 国产精品不卡一区| 欧美成人伊人久久综合网| 91精品福利视频| 成人黄色小视频在线观看| 免费国产亚洲视频| 亚洲地区一二三色| 日韩美女久久久| 欧美国产日本视频| 久久影视一区二区| 精品国产亚洲一区二区三区在线观看| 蜜桃久久精品一区二区| 伊人色综合久久天天| 欧美激情综合网| 久久久欧美精品sm网站 | 久久电影网站中文字幕| 亚洲桃色在线一区| 国产欧美日韩精品一区| 久久综合狠狠综合| 日韩精品中文字幕一区二区三区| 国产一区999| 五月婷婷激情综合| 亚洲第一主播视频| 婷婷国产v国产偷v亚洲高清| 亚洲综合色成人| 一区二区三区免费| 亚洲精品v日韩精品| 亚洲视频一区二区免费在线观看| 欧美日韩一区久久| 欧美色图天堂网| 欧美在线短视频| 99精品视频在线观看| 成人小视频免费在线观看| 国产成人综合自拍| 高清shemale亚洲人妖| 豆国产96在线|亚洲| 成人动漫在线一区| 成人开心网精品视频| 91在线观看视频| 色先锋资源久久综合| 色综合天天做天天爱| 欧美亚洲禁片免费| 91精品国产综合久久久久久久久久| 国产精品123| 粉嫩aⅴ一区二区三区四区五区| 亚洲精品国产品国语在线app| 91精品国产色综合久久| 91精品欧美久久久久久动漫| 日韩亚洲欧美在线| 久久久噜噜噜久噜久久综合| 中文字幕二三区不卡| 亚洲黄色性网站| 视频一区二区三区在线| 精品一区二区三区免费| 国产伦精品一区二区三区在线观看| 亚洲精品少妇30p| 天天操天天综合网| 精品一区二区三区在线视频| 成人午夜在线播放| 欧美视频日韩视频| 精品sm捆绑视频| 亚洲免费视频中文字幕| 日韩av在线播放中文字幕| 国产精品白丝jk白祙喷水网站| 日韩专区在线视频| 国产一区二区三区免费看| 不卡一二三区首页| 91 com成人网| 久久亚洲精品小早川怜子| 亚洲精品美腿丝袜| 狂野欧美性猛交blacked| 成人网男人的天堂| 欧美一区二区三区影视| 中文久久乱码一区二区| 午夜激情久久久| 国产精品综合网| 欧美电影在哪看比较好| 国产欧美日韩在线视频| 日韩精品电影一区亚洲| 不卡视频一二三| 欧美成人伊人久久综合网| 一区二区三区四区不卡在线| 黄色日韩网站视频| 欧美片网站yy| 中文字幕一区二区三| 精品一区二区三区在线播放视频| 久久国产人妖系列| 91成人免费网站| 国产亚洲欧美日韩日本| 无码av免费一区二区三区试看| 亚洲国产成人91porn| 国产电影精品久久禁18| 91麻豆精品国产91久久久久久久久| 欧美三级日本三级少妇99| 亚洲国产精品高清| 麻豆精品视频在线观看| 欧美中文字幕一二三区视频| 国产精品久久久久精k8| 国内外精品视频| 欧美一级艳片视频免费观看| 一区二区三区产品免费精品久久75| 亚洲午夜精品在线| 99久久精品久久久久久清纯| www国产亚洲精品久久麻豆| 日本伊人色综合网| 欧美日韩免费高清一区色橹橹 | 欧美精选一区二区| 亚洲久草在线视频| 国产盗摄视频一区二区三区| 日韩精品一区二区在线观看| 日韩精品一级二级| 欧美性极品少妇| 亚洲午夜激情网站| 在线亚洲人成电影网站色www| 91精品国产综合久久小美女| 亚洲精品伦理在线| 日本精品裸体写真集在线观看 | 日韩欧美亚洲国产精品字幕久久久 | 日日夜夜精品免费视频| 色婷婷综合激情| 中文字幕一区二区5566日韩| 岛国一区二区在线观看| 久久久久久**毛片大全| 国产精品一二三四区| 精品国产91乱码一区二区三区 | 久久影音资源网| 麻豆中文一区二区| 日韩网站在线看片你懂的| 蜜桃精品视频在线| 精品处破学生在线二十三| 国产精品一区2区| 国产精品色婷婷久久58| 成人av在线网站| 亚洲欧洲综合另类| 欧美性videosxxxxx| 日韩高清在线观看| xvideos.蜜桃一区二区| 国产激情视频一区二区三区欧美| 欧美高清视频不卡网| 毛片一区二区三区| 久久综合久久综合久久| 国产一区二区免费在线| 国产精品午夜免费| 在线视频国产一区| 日韩精品电影在线观看| 久久精品人人做人人爽97| 97精品久久久午夜一区二区三区| 日韩欧美视频一区| 粉嫩高潮美女一区二区三区 | 欧美成人午夜电影| 国产成人免费高清| 一区二区三区四区不卡视频| 日韩一区二区三区免费观看| 精品一区二区三区av| 亚洲男女毛片无遮挡| 日韩欧美aaaaaa|