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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? stm32f10x_exti.c

?? STM32+Grlib
?? C
字號:
/**
  ******************************************************************************
  * @file    stm32f10x_exti.c
  * @author  MCD Application Team
  * @version V3.5.0
  * @date    11-March-2011
  * @brief   This file provides all the EXTI firmware functions.
  ******************************************************************************
  * @attention
  *
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
  *
  * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
  ******************************************************************************
  */

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_exti.h"

/** @addtogroup STM32F10x_StdPeriph_Driver
  * @{
  */

/** @defgroup EXTI 
  * @brief EXTI driver modules
  * @{
  */

/** @defgroup EXTI_Private_TypesDefinitions
  * @{
  */

/**
  * @}
  */

/** @defgroup EXTI_Private_Defines
  * @{
  */

#define EXTI_LINENONE    ((uint32_t)0x00000)  /* No interrupt selected */

/**
  * @}
  */

/** @defgroup EXTI_Private_Macros
  * @{
  */

/**
  * @}
  */

/** @defgroup EXTI_Private_Variables
  * @{
  */

/**
  * @}
  */

/** @defgroup EXTI_Private_FunctionPrototypes
  * @{
  */

/**
  * @}
  */

/** @defgroup EXTI_Private_Functions
  * @{
  */

/**
  * @brief  Deinitializes the EXTI peripheral registers to their default reset values.
  * @param  None
  * @retval None
  */
void EXTI_DeInit(void)
{
  EXTI->IMR = 0x00000000;
  EXTI->EMR = 0x00000000;
  EXTI->RTSR = 0x00000000; 
  EXTI->FTSR = 0x00000000; 
  EXTI->PR = 0x000FFFFF;
}

/**
  * @brief  Initializes the EXTI peripheral according to the specified
  *         parameters in the EXTI_InitStruct.
  * @param  EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure
  *         that contains the configuration information for the EXTI peripheral.
  * @retval None
  */
void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
{
  uint32_t tmp = 0;

  /* Check the parameters */
  assert_param(IS_EXTI_MODE(EXTI_InitStruct->EXTI_Mode));
  assert_param(IS_EXTI_TRIGGER(EXTI_InitStruct->EXTI_Trigger));
  assert_param(IS_EXTI_LINE(EXTI_InitStruct->EXTI_Line));  
  assert_param(IS_FUNCTIONAL_STATE(EXTI_InitStruct->EXTI_LineCmd));

  tmp = (uint32_t)EXTI_BASE;
     
  if (EXTI_InitStruct->EXTI_LineCmd != DISABLE)
  {
    /* Clear EXTI line configuration */
    EXTI->IMR &= ~EXTI_InitStruct->EXTI_Line;
    EXTI->EMR &= ~EXTI_InitStruct->EXTI_Line;
    
    tmp += EXTI_InitStruct->EXTI_Mode;

    *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line;

    /* Clear Rising Falling edge configuration */
    EXTI->RTSR &= ~EXTI_InitStruct->EXTI_Line;
    EXTI->FTSR &= ~EXTI_InitStruct->EXTI_Line;
    
    /* Select the trigger for the selected external interrupts */
    if (EXTI_InitStruct->EXTI_Trigger == EXTI_Trigger_Rising_Falling)
    {
      /* Rising Falling edge */
      EXTI->RTSR |= EXTI_InitStruct->EXTI_Line;
      EXTI->FTSR |= EXTI_InitStruct->EXTI_Line;
    }
    else
    {
      tmp = (uint32_t)EXTI_BASE;
      tmp += EXTI_InitStruct->EXTI_Trigger;

      *(__IO uint32_t *) tmp |= EXTI_InitStruct->EXTI_Line;
    }
  }
  else
  {
    tmp += EXTI_InitStruct->EXTI_Mode;

    /* Disable the selected external lines */
    *(__IO uint32_t *) tmp &= ~EXTI_InitStruct->EXTI_Line;
  }
}

/**
  * @brief  Fills each EXTI_InitStruct member with its reset value.
  * @param  EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure which will
  *         be initialized.
  * @retval None
  */
void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
{
  EXTI_InitStruct->EXTI_Line = EXTI_LINENONE;
  EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
  EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
  EXTI_InitStruct->EXTI_LineCmd = DISABLE;
}

/**
  * @brief  Generates a Software interrupt.
  * @param  EXTI_Line: specifies the EXTI lines to be enabled or disabled.
  *   This parameter can be any combination of EXTI_Linex where x can be (0..19).
  * @retval None
  */
void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));
  
  EXTI->SWIER |= EXTI_Line;
}

/**
  * @brief  Checks whether the specified EXTI line flag is set or not.
  * @param  EXTI_Line: specifies the EXTI line flag to check.
  *   This parameter can be:
  *     @arg EXTI_Linex: External interrupt line x where x(0..19)
  * @retval The new state of EXTI_Line (SET or RESET).
  */
FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
{
  FlagStatus bitstatus = RESET;
  /* Check the parameters */
  assert_param(IS_GET_EXTI_LINE(EXTI_Line));
  
  if ((EXTI->PR & EXTI_Line) != (uint32_t)RESET)
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}

/**
  * @brief  Clears the EXTI's line pending flags.
  * @param  EXTI_Line: specifies the EXTI lines flags to clear.
  *   This parameter can be any combination of EXTI_Linex where x can be (0..19).
  * @retval None
  */
void EXTI_ClearFlag(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));
  
  EXTI->PR = EXTI_Line;
}

/**
  * @brief  Checks whether the specified EXTI line is asserted or not.
  * @param  EXTI_Line: specifies the EXTI line to check.
  *   This parameter can be:
  *     @arg EXTI_Linex: External interrupt line x where x(0..19)
  * @retval The new state of EXTI_Line (SET or RESET).
  */
ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
{
  ITStatus bitstatus = RESET;
  uint32_t enablestatus = 0;
  /* Check the parameters */
  assert_param(IS_GET_EXTI_LINE(EXTI_Line));
  
  enablestatus =  EXTI->IMR & EXTI_Line;
  if (((EXTI->PR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET))
  {
    bitstatus = SET;
  }
  else
  {
    bitstatus = RESET;
  }
  return bitstatus;
}

/**
  * @brief  Clears the EXTI's line pending bits.
  * @param  EXTI_Line: specifies the EXTI lines to clear.
  *   This parameter can be any combination of EXTI_Linex where x can be (0..19).
  * @retval None
  */
void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
{
  /* Check the parameters */
  assert_param(IS_EXTI_LINE(EXTI_Line));
  
  EXTI->PR = EXTI_Line;
}

/**
  * @}
  */

/**
  * @}
  */

/**
  * @}
  */

/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人永久aaa| 欧美日韩成人在线一区| 欧美人与禽zozo性伦| www激情久久| 亚洲国产精品久久一线不卡| 丰满亚洲少妇av| 日韩精品一区二区三区老鸭窝| 中文字幕亚洲一区二区av在线 | 91精品在线麻豆| 亚洲欧洲日韩在线| 国产精品一二三在| 日韩欧美一级精品久久| 午夜精品123| 91蝌蚪porny| 亚洲国产精品成人综合色在线婷婷| 蜜桃av一区二区在线观看| 欧美精选一区二区| 亚洲一级二级在线| 日本韩国一区二区三区| 中文字幕在线一区免费| av在线不卡免费看| 国产欧美精品区一区二区三区| 久久国产精品无码网站| 91麻豆精品国产91久久久久久久久 | 裸体一区二区三区| 欧美一卡二卡在线| 日本伊人色综合网| 欧美成人猛片aaaaaaa| 奇米精品一区二区三区在线观看| 3atv一区二区三区| 久久精品久久99精品久久| 91精品国产91久久久久久最新毛片 | 国产一区二区在线看| 久久蜜桃香蕉精品一区二区三区| 黄色日韩网站视频| 久久久久久久久免费| 国产美女久久久久| 久久精品视频一区二区| 成人综合婷婷国产精品久久| 国产精品久久久久影院色老大 | 国产丶欧美丶日本不卡视频| 欧美国产成人精品| 91亚洲精品乱码久久久久久蜜桃| 国产精品视频线看| 91激情在线视频| 日韩av电影天堂| 国产欧美日韩亚州综合 | 国产精品亚洲成人| 中文一区一区三区高中清不卡| 成人高清视频在线| 一区二区三区四区蜜桃| 欧美高清激情brazzers| 国产精品自拍在线| 中文字幕日韩一区| 欧美日韩美女一区二区| 国产一区二区成人久久免费影院| 国产精品九色蝌蚪自拍| 欧美日韩综合色| 精品一区免费av| ●精品国产综合乱码久久久久 | 一本色道a无线码一区v| 日本中文一区二区三区| 欧美激情在线看| 欧美浪妇xxxx高跟鞋交| 成人做爰69片免费看网站| 亚洲一二三专区| 国产亚洲精品7777| 欧美高清www午色夜在线视频| 国产精品888| 日韩综合一区二区| 中文字幕欧美一区| 精品国产一区二区三区四区四 | 91蜜桃网址入口| 久久国产欧美日韩精品| 夜夜精品浪潮av一区二区三区 | 欧美日韩一卡二卡| 粉嫩av一区二区三区在线播放| 五月婷婷综合在线| 亚洲欧美一区二区三区久本道91 | 久久99蜜桃精品| 亚洲图片一区二区| 亚洲国产精品成人综合| 日韩一区国产二区欧美三区| 91在线观看污| 国产米奇在线777精品观看| 日韩精品亚洲专区| 亚洲卡通欧美制服中文| 中文字幕av一区二区三区免费看 | 一区二区三区中文在线| 久久久久久日产精品| 欧美一区二区精品久久911| 色系网站成人免费| 丁香婷婷综合色啪| 久久er精品视频| 日韩二区在线观看| 丝袜亚洲精品中文字幕一区| 亚洲综合久久久| 中文字幕在线播放不卡一区| 国产天堂亚洲国产碰碰| 久久伊人中文字幕| 欧美精品一区二区三区久久久 | 亚洲欧洲精品天堂一级| 国产午夜精品在线观看| 亚洲精品一区二区三区在线观看| 欧美一区二区三区免费观看视频| 欧美三级视频在线| 欧美色图在线观看| 欧美无乱码久久久免费午夜一区 | 99re在线视频这里只有精品| 成人国产免费视频| eeuss鲁一区二区三区| 成人午夜私人影院| 99久久久久免费精品国产| av一区二区三区四区| 99久久伊人精品| 在线免费不卡视频| 欧美性受xxxx黑人xyx| 欧美日韩电影在线| 欧美一区二区三区男人的天堂| 欧美一区二区三区人| 精品剧情在线观看| 国产三级一区二区三区| 欧美激情自拍偷拍| 亚洲蜜臀av乱码久久精品蜜桃| 日韩一区日韩二区| 亚洲综合精品久久| 欧美aaaaaa午夜精品| 国产伦精一区二区三区| 99免费精品视频| 欧美亚洲愉拍一区二区| 日韩午夜小视频| 国产欧美日韩久久| 亚洲精品五月天| 日韩av电影天堂| 国产黑丝在线一区二区三区| 99亚偷拍自图区亚洲| 欧美日韩日日摸| 久久先锋资源网| 亚洲精品成人在线| 日韩电影免费在线观看网站| 国产福利一区在线观看| 欧美亚洲尤物久久| 2023国产精品自拍| 亚洲五月六月丁香激情| 韩国成人精品a∨在线观看| 99久久免费视频.com| 欧美一区二区三区在线观看视频| 久久久亚洲精品石原莉奈| 亚洲视频免费观看| 裸体在线国模精品偷拍| 99re热视频精品| 欧美成人艳星乳罩| 一区2区3区在线看| 狠狠色综合播放一区二区| 色婷婷亚洲婷婷| 2023国产精华国产精品| 亚洲国产aⅴ天堂久久| 成人性生交大合| 日韩欧美区一区二| 亚洲一区二区三区视频在线播放| 精品亚洲aⅴ乱码一区二区三区| 一本一道综合狠狠老| 国产午夜精品久久久久久免费视| 亚洲国产精品久久一线不卡| 大桥未久av一区二区三区中文| 欧美日韩成人综合天天影院| 18成人在线视频| 国产精品18久久久久久久久久久久 | 亚洲成人一二三| 99久久精品国产麻豆演员表| 欧美成人猛片aaaaaaa| 一区二区日韩av| 成人福利视频在线| 久久久久久久久一| 久久黄色级2电影| 欧美一三区三区四区免费在线看| 亚洲精品免费播放| 99久久精品国产一区| 国产日韩欧美综合一区| 国产主播一区二区| 欧美不卡一二三| 免费久久99精品国产| 884aa四虎影成人精品一区| 一区二区成人在线观看| 91免费国产在线观看| 日韩理论电影院| fc2成人免费人成在线观看播放| 国产婷婷色一区二区三区四区| 国内一区二区视频| 久久久精品影视| 国产大陆亚洲精品国产| 国产色91在线| eeuss鲁片一区二区三区| 国产欧美一区二区精品忘忧草| 国产成人精品免费视频网站| 久久人人爽爽爽人久久久| 国产乱国产乱300精品| 国产欧美日韩亚州综合 | 高清久久久久久| 国产偷国产偷亚洲高清人白洁|