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

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

?? stm32f10x_adc.c

?? stm32+ucos-ii
?? C
?? 第 1 頁 / 共 4 頁
字號(hào):
/**
  ******************************************************************************
  * @file    stm32f10x_adc.c
  * @author  MCD Application Team
  * @version V3.4.0
  * @date    10/15/2010
  * @brief   This file provides all the ADC firmware functions.
  ******************************************************************************
  * @copy
  *
  * 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 2010 STMicroelectronics</center></h2>
  */ 

/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_adc.h"
#include "stm32f10x_rcc.h"

/** @addtogroup STM32F10x_StdPeriph_Driver
  * @{
  */

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

/** @defgroup ADC_Private_TypesDefinitions
  * @{
  */

/**
  * @}
  */

/** @defgroup ADC_Private_Defines
  * @{
  */

/* ADC DISCNUM mask */
#define CR1_DISCNUM_Reset           ((uint32_t)0xFFFF1FFF)

/* ADC DISCEN mask */
#define CR1_DISCEN_Set              ((uint32_t)0x00000800)
#define CR1_DISCEN_Reset            ((uint32_t)0xFFFFF7FF)

/* ADC JAUTO mask */
#define CR1_JAUTO_Set               ((uint32_t)0x00000400)
#define CR1_JAUTO_Reset             ((uint32_t)0xFFFFFBFF)

/* ADC JDISCEN mask */
#define CR1_JDISCEN_Set             ((uint32_t)0x00001000)
#define CR1_JDISCEN_Reset           ((uint32_t)0xFFFFEFFF)

/* ADC AWDCH mask */
#define CR1_AWDCH_Reset             ((uint32_t)0xFFFFFFE0)

/* ADC Analog watchdog enable mode mask */
#define CR1_AWDMode_Reset           ((uint32_t)0xFF3FFDFF)

/* CR1 register Mask */
#define CR1_CLEAR_Mask              ((uint32_t)0xFFF0FEFF)

/* ADC ADON mask */
#define CR2_ADON_Set                ((uint32_t)0x00000001)
#define CR2_ADON_Reset              ((uint32_t)0xFFFFFFFE)

/* ADC DMA mask */
#define CR2_DMA_Set                 ((uint32_t)0x00000100)
#define CR2_DMA_Reset               ((uint32_t)0xFFFFFEFF)

/* ADC RSTCAL mask */
#define CR2_RSTCAL_Set              ((uint32_t)0x00000008)

/* ADC CAL mask */
#define CR2_CAL_Set                 ((uint32_t)0x00000004)

/* ADC SWSTART mask */
#define CR2_SWSTART_Set             ((uint32_t)0x00400000)

/* ADC EXTTRIG mask */
#define CR2_EXTTRIG_Set             ((uint32_t)0x00100000)
#define CR2_EXTTRIG_Reset           ((uint32_t)0xFFEFFFFF)

/* ADC Software start mask */
#define CR2_EXTTRIG_SWSTART_Set     ((uint32_t)0x00500000)
#define CR2_EXTTRIG_SWSTART_Reset   ((uint32_t)0xFFAFFFFF)

/* ADC JEXTSEL mask */
#define CR2_JEXTSEL_Reset           ((uint32_t)0xFFFF8FFF)

/* ADC JEXTTRIG mask */
#define CR2_JEXTTRIG_Set            ((uint32_t)0x00008000)
#define CR2_JEXTTRIG_Reset          ((uint32_t)0xFFFF7FFF)

/* ADC JSWSTART mask */
#define CR2_JSWSTART_Set            ((uint32_t)0x00200000)

/* ADC injected software start mask */
#define CR2_JEXTTRIG_JSWSTART_Set   ((uint32_t)0x00208000)
#define CR2_JEXTTRIG_JSWSTART_Reset ((uint32_t)0xFFDF7FFF)

/* ADC TSPD mask */
#define CR2_TSVREFE_Set             ((uint32_t)0x00800000)
#define CR2_TSVREFE_Reset           ((uint32_t)0xFF7FFFFF)

/* CR2 register Mask */
#define CR2_CLEAR_Mask              ((uint32_t)0xFFF1F7FD)

/* ADC SQx mask */
#define SQR3_SQ_Set                 ((uint32_t)0x0000001F)
#define SQR2_SQ_Set                 ((uint32_t)0x0000001F)
#define SQR1_SQ_Set                 ((uint32_t)0x0000001F)

/* SQR1 register Mask */
#define SQR1_CLEAR_Mask             ((uint32_t)0xFF0FFFFF)

/* ADC JSQx mask */
#define JSQR_JSQ_Set                ((uint32_t)0x0000001F)

/* ADC JL mask */
#define JSQR_JL_Set                 ((uint32_t)0x00300000)
#define JSQR_JL_Reset               ((uint32_t)0xFFCFFFFF)

/* ADC SMPx mask */
#define SMPR1_SMP_Set               ((uint32_t)0x00000007)
#define SMPR2_SMP_Set               ((uint32_t)0x00000007)

/* ADC JDRx registers offset */
#define JDR_Offset                  ((uint8_t)0x28)

/* ADC1 DR register base address */
#define DR_ADDRESS                  ((uint32_t)0x4001244C)

/**
  * @}
  */

/** @defgroup ADC_Private_Macros
  * @{
  */

/**
  * @}
  */

/** @defgroup ADC_Private_Variables
  * @{
  */

/**
  * @}
  */

/** @defgroup ADC_Private_FunctionPrototypes
  * @{
  */

/**
  * @}
  */

/** @defgroup ADC_Private_Functions
  * @{
  */

/**
  * @brief  Deinitializes the ADCx peripheral registers to their default reset values.
  * @param  ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
  * @retval None
  */
void ADC_DeInit(ADC_TypeDef* ADCx)
{
  /* Check the parameters */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  
  if (ADCx == ADC1)
  {
    /* Enable ADC1 reset state */
    RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, ENABLE);
    /* Release ADC1 from reset state */
    RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC1, DISABLE);
  }
  else if (ADCx == ADC2)
  {
    /* Enable ADC2 reset state */
    RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, ENABLE);
    /* Release ADC2 from reset state */
    RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC2, DISABLE);
  }
  else
  {
    if (ADCx == ADC3)
    {
      /* Enable ADC3 reset state */
      RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, ENABLE);
      /* Release ADC3 from reset state */
      RCC_APB2PeriphResetCmd(RCC_APB2Periph_ADC3, DISABLE);
    }
  }
}

/**
  * @brief  Initializes the ADCx peripheral according to the specified parameters
  *   in the ADC_InitStruct.
  * @param  ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
  * @param  ADC_InitStruct: pointer to an ADC_InitTypeDef structure that contains
  *   the configuration information for the specified ADC peripheral.
  * @retval None
  */
void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)
{
  uint32_t tmpreg1 = 0;
  uint8_t tmpreg2 = 0;
  /* Check the parameters */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_ADC_MODE(ADC_InitStruct->ADC_Mode));
  assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ScanConvMode));
  assert_param(IS_FUNCTIONAL_STATE(ADC_InitStruct->ADC_ContinuousConvMode));
  assert_param(IS_ADC_EXT_TRIG(ADC_InitStruct->ADC_ExternalTrigConv));   
  assert_param(IS_ADC_DATA_ALIGN(ADC_InitStruct->ADC_DataAlign)); 
  assert_param(IS_ADC_REGULAR_LENGTH(ADC_InitStruct->ADC_NbrOfChannel));

  /*---------------------------- ADCx CR1 Configuration -----------------*/
  /* Get the ADCx CR1 value */
  tmpreg1 = ADCx->CR1;
  /* Clear DUALMOD and SCAN bits */
  tmpreg1 &= CR1_CLEAR_Mask;
  /* Configure ADCx: Dual mode and scan conversion mode */
  /* Set DUALMOD bits according to ADC_Mode value */
  /* Set SCAN bit according to ADC_ScanConvMode value */
  tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_Mode | ((uint32_t)ADC_InitStruct->ADC_ScanConvMode << 8));
  /* Write to ADCx CR1 */
  ADCx->CR1 = tmpreg1;

  /*---------------------------- ADCx CR2 Configuration -----------------*/
  /* Get the ADCx CR2 value */
  tmpreg1 = ADCx->CR2;
  /* Clear CONT, ALIGN and EXTSEL bits */
  tmpreg1 &= CR2_CLEAR_Mask;
  /* Configure ADCx: external trigger event and continuous conversion mode */
  /* Set ALIGN bit according to ADC_DataAlign value */
  /* Set EXTSEL bits according to ADC_ExternalTrigConv value */
  /* Set CONT bit according to ADC_ContinuousConvMode value */
  tmpreg1 |= (uint32_t)(ADC_InitStruct->ADC_DataAlign | ADC_InitStruct->ADC_ExternalTrigConv |
            ((uint32_t)ADC_InitStruct->ADC_ContinuousConvMode << 1));
  /* Write to ADCx CR2 */
  ADCx->CR2 = tmpreg1;

  /*---------------------------- ADCx SQR1 Configuration -----------------*/
  /* Get the ADCx SQR1 value */
  tmpreg1 = ADCx->SQR1;
  /* Clear L bits */
  tmpreg1 &= SQR1_CLEAR_Mask;
  /* Configure ADCx: regular channel sequence length */
  /* Set L bits according to ADC_NbrOfChannel value */
  tmpreg2 |= (uint8_t) (ADC_InitStruct->ADC_NbrOfChannel - (uint8_t)1);
  tmpreg1 |= (uint32_t)tmpreg2 << 20;
  /* Write to ADCx SQR1 */
  ADCx->SQR1 = tmpreg1;
}

/**
  * @brief  Fills each ADC_InitStruct member with its default value.
  * @param  ADC_InitStruct : pointer to an ADC_InitTypeDef structure which will be initialized.
  * @retval None
  */
void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)
{
  /* Reset ADC init structure parameters values */
  /* Initialize the ADC_Mode member */
  ADC_InitStruct->ADC_Mode = ADC_Mode_Independent;
  /* initialize the ADC_ScanConvMode member */
  ADC_InitStruct->ADC_ScanConvMode = DISABLE;
  /* Initialize the ADC_ContinuousConvMode member */
  ADC_InitStruct->ADC_ContinuousConvMode = DISABLE;
  /* Initialize the ADC_ExternalTrigConv member */
  ADC_InitStruct->ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1;
  /* Initialize the ADC_DataAlign member */
  ADC_InitStruct->ADC_DataAlign = ADC_DataAlign_Right;
  /* Initialize the ADC_NbrOfChannel member */
  ADC_InitStruct->ADC_NbrOfChannel = 1;
}

/**
  * @brief  Enables or disables the specified ADC peripheral.
  * @param  ADCx: where x can be 1, 2 or 3 to select the ADC peripheral.
  * @param  NewState: new state of the ADCx peripheral.
  *   This parameter can be: ENABLE or DISABLE.
  * @retval None
  */
void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  if (NewState != DISABLE)
  {
    /* Set the ADON bit to wake up the ADC from power down mode */
    ADCx->CR2 |= CR2_ADON_Set;
  }
  else
  {
    /* Disable the selected ADC peripheral */
    ADCx->CR2 &= CR2_ADON_Reset;
  }
}

/**
  * @brief  Enables or disables the specified ADC DMA request.
  * @param  ADCx: where x can be 1 or 3 to select the ADC peripheral.
  *   Note: ADC2 hasn't a DMA capability.
  * @param  NewState: new state of the selected ADC DMA transfer.
  *   This parameter can be: ENABLE or DISABLE.
  * @retval None
  */
void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  /* Check the parameters */
  assert_param(IS_ADC_DMA_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国精产品一区一区三区mba视频| 亚洲mv在线观看| 粉嫩嫩av羞羞动漫久久久 | 午夜精品福利久久久| 欧美在线一区二区| 婷婷久久综合九色国产成人 | 国产亚洲综合性久久久影院| 国内精品国产三级国产a久久| 久久久久久亚洲综合影院红桃| 成人一区二区三区在线观看| 亚洲女厕所小便bbb| 欧美久久久久久久久久| 精品亚洲国内自在自线福利| 国产亚洲综合色| 在线视频你懂得一区| 日韩va欧美va亚洲va久久| 精品av久久707| 91麻豆123| 久久电影网电视剧免费观看| 中文字幕一区在线观看视频| 欧美午夜精品一区二区蜜桃| 久久精品国产一区二区| 中文字幕一区在线观看视频| 欧美肥妇bbw| 成人av免费在线| 五月综合激情网| 国产三级精品视频| 欧美日韩国产美女| 国产福利一区二区三区视频| 亚洲一级二级三级在线免费观看| 精品国内二区三区| 91久久精品国产91性色tv| 久久99久久久欧美国产| 亚洲日本乱码在线观看| 精品国产精品网麻豆系列| 一本大道久久a久久精二百| 久久精品国产77777蜜臀| 亚洲欧美电影一区二区| 久久亚洲精品国产精品紫薇| 欧日韩精品视频| 国产传媒欧美日韩成人| 日韩国产精品久久久久久亚洲| 国产精品福利一区二区三区| 日韩一级视频免费观看在线| 欧洲精品一区二区| 成人免费毛片片v| 日本欧美久久久久免费播放网| 中文字幕在线不卡一区| 久久久一区二区三区捆绑**| 欧美伦理视频网站| 日本久久精品电影| 成人激情小说网站| 国产美女一区二区| 日本午夜一本久久久综合| 亚洲老司机在线| 亚洲国产精品精华液2区45| 精品国产一二三区| 欧美一级视频精品观看| 色94色欧美sute亚洲线路二| av在线不卡观看免费观看| 国产精品一区在线观看乱码| 久久成人羞羞网站| 日韩vs国产vs欧美| 日日噜噜夜夜狠狠视频欧美人 | 亚洲国产精品一区二区尤物区| 国产精品护士白丝一区av| 久久久久成人黄色影片| 精品国产不卡一区二区三区| 欧美一区二区三区小说| 欧美人妇做爰xxxⅹ性高电影| 91免费看`日韩一区二区| 成人av在线影院| 不卡视频在线看| 99热精品一区二区| 99久久精品费精品国产一区二区| 高清不卡在线观看| 成人免费毛片aaaaa**| 成人免费视频视频| 99热这里都是精品| 91国偷自产一区二区使用方法| 91在线视频播放地址| 色哦色哦哦色天天综合| 欧美丝袜自拍制服另类| 欧美日本国产视频| 日韩一级视频免费观看在线| 欧美精品一区二区三区一线天视频| 日韩欧美国产电影| 2014亚洲片线观看视频免费| 2023国产一二三区日本精品2022| 久久久久久久久岛国免费| 国产午夜精品理论片a级大结局| 国产女主播视频一区二区| 国产精品久久久久久久久久久免费看| 中文字幕日韩一区| 怡红院av一区二区三区| 日韩在线一区二区| 激情深爱一区二区| a级精品国产片在线观看| 在线观看日韩精品| 精品国产乱码久久久久久牛牛| 国产亚洲美州欧州综合国| 亚洲欧美日韩在线| 日韩精品成人一区二区三区| 国精产品一区一区三区mba视频 | 国产精品一区二区在线看| 成人中文字幕电影| 欧美中文字幕亚洲一区二区va在线 | 一区二区三区免费看视频| 丝袜诱惑制服诱惑色一区在线观看| 免费人成精品欧美精品| 粉嫩av一区二区三区| 欧美亚洲日本一区| 久久久亚洲精品一区二区三区| 亚洲日本成人在线观看| 另类人妖一区二区av| 成人高清视频在线| 欧美精品久久久久久久久老牛影院| 久久久久久久综合狠狠综合| 亚洲欧美日韩一区二区 | 成人精品视频一区二区三区| 在线精品视频一区二区三四| 欧美大片日本大片免费观看| 国产精品久久影院| 日本不卡一区二区| 99国产精品久久久久| 欧美一级高清大全免费观看| 国产精品国产自产拍高清av| 日韩电影在线一区| 99久久精品国产麻豆演员表| 日韩一区二区不卡| 亚洲一区中文日韩| 成人美女视频在线观看| 91精品国产欧美日韩| 亚洲伦理在线免费看| 国产精品综合视频| 欧美日韩精品系列| 亚洲摸摸操操av| 黑人精品欧美一区二区蜜桃| 欧美乱妇一区二区三区不卡视频| 国产精品久久毛片av大全日韩| 老色鬼精品视频在线观看播放| 一本大道久久精品懂色aⅴ| 国产精品丝袜在线| 国产老女人精品毛片久久| 欧美精品色一区二区三区| 亚洲精品美腿丝袜| 成人在线视频一区二区| 久久九九99视频| 久久精品噜噜噜成人88aⅴ| 欧美日韩免费一区二区三区| 亚洲色图20p| 99久久免费国产| 欧美激情综合在线| 国产大片一区二区| 国产色综合久久| 韩国av一区二区| 久久丝袜美腿综合| 国产米奇在线777精品观看| 精品日产卡一卡二卡麻豆| 久久精品国产一区二区| 日韩免费观看高清完整版| 视频在线观看国产精品| 欧美三级视频在线观看| 亚洲自拍都市欧美小说| 91久久精品一区二区三区| 一区二区视频在线看| 91免费观看国产| 亚洲黄色av一区| 在线观看日韩一区| 亚洲国产美国国产综合一区二区| 在线观看视频91| 午夜欧美在线一二页| 欧美绝品在线观看成人午夜影视| 视频一区二区中文字幕| 91精品国产综合久久小美女| 美日韩一区二区三区| 日韩美女天天操| 国产精品香蕉一区二区三区| 欧美国产精品v| 色综合视频一区二区三区高清| 亚洲欧美日本在线| 欧美日韩国产综合一区二区| 天天爽夜夜爽夜夜爽精品视频| 在线播放中文一区| 九色|91porny| 国产精品麻豆欧美日韩ww| 色婷婷香蕉在线一区二区| 亚洲成人动漫精品| 欧美va在线播放| 91色综合久久久久婷婷| 亚洲成人在线免费| 欧美精品一区二区三区在线| jlzzjlzz欧美大全| 亚洲国产精品视频| 精品电影一区二区三区| av在线播放不卡| 天堂精品中文字幕在线| 国产婷婷一区二区| 91福利在线播放| 精品一区二区三区免费播放|