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

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

?? stm32f10x_exti.c

?? 學習stm32定時器
?? 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一区二区三区免费野_久草精品视频
在线欧美日韩国产| 一区二区三区欧美日| 亚洲一级二级三级在线免费观看| 久久精品久久综合| 91天堂素人约啪| 精品国产91九色蝌蚪| 亚洲一级片在线观看| av中文字幕在线不卡| 亚洲精品久久久久久国产精华液| 美女任你摸久久| 在线精品亚洲一区二区不卡| 国产精品久久久久久亚洲伦| 久久成人免费电影| 欧美精品久久久久久久久老牛影院| 亚洲视频每日更新| 国产成人夜色高潮福利影视| 欧美本精品男人aⅴ天堂| 午夜久久久久久久久久一区二区| 91蝌蚪porny九色| 国产精品青草综合久久久久99| 精品一区二区三区在线观看| 欧美一区二区三区成人| 午夜精品福利一区二区三区蜜桃| 日本乱人伦一区| 国产精品久久久久毛片软件| 成人在线视频一区二区| 国产清纯美女被跳蛋高潮一区二区久久w| 日韩1区2区3区| 欧美一区二区三区在线看| 日韩电影在线一区| 欧美一区二区三区四区五区| 日韩国产精品91| 日韩欧美资源站| 九色综合狠狠综合久久| 久久久综合视频| 国产精品一区二区果冻传媒| 国产午夜精品久久| 成人听书哪个软件好| 亚洲人成伊人成综合网小说| 在线视频观看一区| 午夜视频在线观看一区二区 | 久久久91精品国产一区二区三区| 国产成人99久久亚洲综合精品| 国产精品美女久久久久aⅴ| 成人激情电影免费在线观看| 成人欧美一区二区三区白人| 在线观看日韩一区| 免费xxxx性欧美18vr| 精品国精品自拍自在线| 播五月开心婷婷综合| 亚洲综合免费观看高清完整版在线| 欧美日韩一区二区三区四区五区 | 洋洋成人永久网站入口| 日韩国产欧美在线播放| 欧美一级生活片| 国产麻豆视频精品| 最新中文字幕一区二区三区 | 欧美高清在线精品一区| 95精品视频在线| 天堂成人国产精品一区| 樱花草国产18久久久久| 欧美一区二区在线免费观看| 国产精品一区二区久激情瑜伽| 中文字幕综合网| 欧美一区二区日韩一区二区| 成人短视频下载| 午夜成人免费电影| 国产精品入口麻豆九色| 欧美久久久久久久久久| 国产精品一二二区| 亚洲高清视频的网址| 久久理论电影网| 欧美三级资源在线| 成人性视频网站| 日韩电影在线观看一区| 最新不卡av在线| 久久综合久久综合久久综合| 在线国产电影不卡| 国产成人自拍高清视频在线免费播放| 亚洲女女做受ⅹxx高潮| 久久久亚洲欧洲日产国码αv| 精品视频在线免费观看| 成人激情免费网站| 精品亚洲成a人| 亚洲成人av免费| 亚洲免费观看高清完整版在线| 欧美精品一区二区三区在线| 欧美午夜影院一区| 成人免费毛片片v| 国产一区二区三区蝌蚪| 日韩av不卡在线观看| 亚洲国产cao| 亚洲欧美日韩小说| 国产精品久久夜| 久久久高清一区二区三区| 在线播放日韩导航| 欧美日韩的一区二区| 色综合亚洲欧洲| 国产91精品露脸国语对白| 黑人巨大精品欧美一区| 捆绑变态av一区二区三区| 天堂va蜜桃一区二区三区 | 中文字幕在线观看一区二区| 久久久亚洲欧洲日产国码αv| 欧美一区二区在线免费播放| 欧美专区日韩专区| 色婷婷国产精品综合在线观看| 国产不卡视频在线观看| 国产精品一区在线观看你懂的| 韩国三级电影一区二区| 美女视频一区在线观看| 蜜臀精品一区二区三区在线观看 | 精品电影一区二区| 欧美大片免费久久精品三p| 日韩三级视频在线看| 欧美成人欧美edvon| 久久综合中文字幕| 国产亚洲精品aa午夜观看| 欧美—级在线免费片| 亚洲欧美在线视频| 亚洲资源中文字幕| 天堂一区二区在线免费观看| 日本不卡的三区四区五区| 91网站黄www| 欧美图片一区二区三区| 欧美丰满高潮xxxx喷水动漫| 欧美一区二区三区视频免费| 日韩精品一区在线| 久久精品一区二区三区四区| 国产精品沙发午睡系列990531| 中文字幕一区在线观看| 亚洲综合小说图片| 青青草原综合久久大伊人精品 | 精品第一国产综合精品aⅴ| 久久久久久久久久电影| 中文字幕乱码日本亚洲一区二区 | 国产乱码精品1区2区3区| 亚洲高清免费在线| 三级在线观看一区二区| 免费成人在线影院| 国产成人免费视频| 色8久久精品久久久久久蜜| 欧美二区乱c少妇| 久久久久久久免费视频了| 亚洲三级免费观看| 亚洲成人av福利| 国产精品18久久久久久久网站| 91浏览器入口在线观看| 欧美日韩aaa| 久久久亚洲高清| 夜夜操天天操亚洲| 国内成人自拍视频| 欧美日韩专区在线| 26uuu国产在线精品一区二区| 亚洲精品免费在线播放| 久久精品国产一区二区| 99vv1com这只有精品| 亚洲视频 欧洲视频| 久久精品国产**网站演员| 色婷婷综合久久久久中文一区二区 | 欧美成人性福生活免费看| 中文字幕一区二区三区四区 | 亚洲国产三级在线| 高清在线成人网| 欧美一级二级三级乱码| 17c精品麻豆一区二区免费| 久草在线在线精品观看| 欧美三级三级三级爽爽爽| 国产精品福利影院| 国内精品久久久久影院一蜜桃| 欧美怡红院视频| 国产精品久久久久天堂| 国内精品伊人久久久久av一坑 | 欧美在线影院一区二区| 日韩一区二区不卡| 欧美成人精精品一区二区频| 亚洲精品videosex极品| 欧美日本国产视频| 久久久久久久久久久久久女国产乱| 亚洲午夜免费视频| 色综合色狠狠天天综合色| 国产精品网友自拍| 国产一区二区导航在线播放| 欧美日韩成人综合在线一区二区| 成人欧美一区二区三区| 成人黄色国产精品网站大全在线免费观看| 欧美一区二区播放| 日本在线观看不卡视频| 欧美肥妇bbw| 日韩vs国产vs欧美| 欧美精品第一页| 五月婷婷久久丁香| 欧美剧在线免费观看网站| 亚洲韩国一区二区三区| 欧美在线视频全部完| 亚洲精品午夜久久久| 日本高清无吗v一区| 一区二区三区色| 欧美日韩国产色站一区二区三区| 亚洲制服丝袜在线|