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

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

?? stm32f10x_adc.c

?? STM32F RFID通訊源代碼(支持雙向發送接收)
?? C
?? 第 1 頁 / 共 4 頁
字號:

/*******************************************************************************
* Function Name  : ADC_ResetCalibration
* Description    : Resets the ADC calibration registers.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_ResetCalibration(ADC_TypeDef* ADCx)
{
  /* Resets the selected ADC calibartion registers */
  ADCx->CR2 |= CR2_RSTCAL_Set;
}

/*******************************************************************************
* Function Name  : ADC_GetResetCalibrationStatus
* Description    : Gets the ADC reset calibration registers status.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
* Output         : None
* Return         : The new state of ADC Reset Calibration registers (SET or RESET).
*******************************************************************************/
FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the status of RSTCAL bit */
  if ((ADCx->CR2 & CR2_RSTCAL_Set) != RESET)
  {
    /* RSTCAL bit is set */
    bitstatus = SET;
  }
  else
  {
    /* RSTCAL bit is reset */
    bitstatus = RESET;
  }
  /* Return the RSTCAL bit status */
  return  bitstatus;
}

/*******************************************************************************
* Function Name  : ADC_StartCalibration
* Description    : Starts the calibration process.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_StartCalibration(ADC_TypeDef* ADCx)
{
  /* Enable the selected ADC calibration process */
  ADCx->CR2 |= CR2_CAL_Set;
}

/*******************************************************************************
* Function Name  : ADC_GetCalibrationStatus
* Description    : Gets the ADC calibration status.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
* Output         : None
* Return         : The new state of ADC calibration (SET or RESET).
*******************************************************************************/
FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the status of CAL bit */
  if ((ADCx->CR2 & CR2_CAL_Set) != RESET)
  {
    /* CAL bit is set: calibration on going */
    bitstatus = SET;
  }
  else
  {
    /* CAL bit is reset: end of calibration */
    bitstatus = RESET;
  }
  /* Return the CAL bit status */
  return  bitstatus;
}

/*******************************************************************************
* Function Name  : ADC_SoftwareStartConvCmd
* Description    : Enables or disables the ADC software start conversion .
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
*                  - NewState: new state of the selected ADC software start conversion.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  if (NewState != DISABLE)
  {
    /* Starts the selected ADC conversion */
    ADCx->CR2 |= CR2_SWSTRT_Set;
  }
  else
  {
    /* Stops the selected ADC conversion */
    ADCx->CR2 &= CR2_SWSTRT_Reset;
  }
}

/*******************************************************************************
* Function Name  : ADC_GetSoftwareStartConvStatus
* Description    : Gets the ADC Software start conversion Status.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
* Output         : None
* Return         : The new state of ADC software start conversion (SET or RESET).
*******************************************************************************/
FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the status of SWSTRT bit */
  if ((ADCx->CR2 & CR2_SWSTRT_Set) != RESET)
  {
    /* SWSTRT bit is set */
    bitstatus = SET;
  }
  else
  {
    /* SWSTRT bit is reset */
    bitstatus = RESET;
  }
  /* Return the SWSTRT bit status */
  return  bitstatus;
}

/*******************************************************************************
* Function Name  : ADC_DiscModeChannelCountConfig
* Description    : Configures the discontinuous mode for the selected ADC regular
*                  group channel.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
*                  - Number: specifies the discontinuous mode regular channel
*                    count value. This mumber must be between 1 and 8.
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, u8 Number)
{
  u32 tmpreg1 = 0;
  u8 tmpreg2 = 0;

  /* Get the old register value */
  tmpreg1 = ADCx->CR1;
  /* Clear the old discontinuous mode channel count */
  tmpreg1 &= CR1_DISCNUM_Reset;
  /* Set the discontinuous mode channel count */
  tmpreg2 = Number - 1;
  tmpreg1 |= tmpreg2 << 13;
  /* Store the new register value */
  ADCx->CR1 = tmpreg1;
}

/*******************************************************************************
* Function Name  : ADC_DiscModeCmd
* Description    : Enables or disables the discontinuous mode on regular group
*                  channel for the specified ADC
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
*                  - NewState: new state of the selected ADC discontinuous mode
*                    on regular group channel.
*                    This parameter can be: ENABLE or DISABLE.
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  if (NewState != DISABLE)
  {
    /* Enable the selected ADC regular discontinuous mode */
    ADCx->CR1 |= CR1_DISCEN_Set;
  }
  else
  {
    /* Disable the selected ADC regular discontinuous mode */
    ADCx->CR1 &= CR1_DISCEN_Reset;
  }
}

/*******************************************************************************
* Function Name  : ADC_RegularChannelConfig
* Description    : Configures for the selected ADC regular channel its corresponding
*                  rank in the sequencer and its sample time.
* Input          : - ADCx: where x can be 1 or 2 to select the ADC peripheral.
*                  - ADC_Channel: the ADC channel to configure.
*                    This parameter can be one of the following values:
*                       - ADC_Channel0: ADC Channel0 selected
*                       - ADC_Channel1: ADC Channel1 selected
*                       - ADC_Channel2: ADC Channel2 selected
*                       - ADC_Channel3: ADC Channel3 selected
*                       - ADC_Channel4: ADC Channel4 selected
*                       - ADC_Channel5: ADC Channel5 selected
*                       - ADC_Channel6: ADC Channel6 selected
*                       - ADC_Channel7: ADC Channel7 selected
*                       - ADC_Channel8: ADC Channel8 selected
*                       - ADC_Channel9: ADC Channel9 selected
*                       - ADC_Channel10: ADC Channel10 selected
*                       - ADC_Channel11: ADC Channel11 selected
*                       - ADC_Channel12: ADC Channel12 selected
*                       - ADC_Channel13: ADC Channel13 selected
*                       - ADC_Channel14: ADC Channel14 selected
*                       - ADC_Channel15: ADC Channel15 selected
*                       - ADC_Channel16: ADC Channel16 selected
*                       - ADC_Channel17: ADC Channel17 selected
*                  - Rank: The rank in the regular group sequencer. This parameter
*                    must be between 1 to 16.
*                  - ADC_SampleTime: The sample time value to be set for the
*                    selected channel.
*                    This parameter can be one of the following values:
*                       - ADC_SampleTime_1Cycles5: Sample time equal to 1.5 cycles
*                       - ADC_SampleTime_7Cycles5: Sample time equal to 7.5 cycles
*                       - ADC_SampleTime_13Cycles5: Sample time equal to 13.5 cycles
*                       - ADC_SampleTime_28Cycles5: Sample time equal to 28.5 cycles	
*                       - ADC_SampleTime_41Cycles5: Sample time equal to 41.5 cycles	
*                       - ADC_SampleTime_55Cycles5: Sample time equal to 55.5 cycles	
*                       - ADC_SampleTime_71Cycles5: Sample time equal to 71.5 cycles	
*                       - ADC_SampleTime_239Cycles5: Sample time equal to 239.5 cycles	
* Output         : None
* Return         : None
*******************************************************************************/
void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)
{
  u32 tmpreg1 = 0, tmpreg2 = 0;

  /* if ADC_Channel10 ... ADC_Channel17 is selected */
  if (ADC_Channel > ADC_Channel9)
  {
    /* Get the old register value */
    tmpreg1 = ADCx->SMPR1;
    /* Calculate the mask to clear */
    tmpreg2 = SMPR1_SMP_Set << (3 * (ADC_Channel - 10));
    /* Clear the old discontinuous mode channel count */
    tmpreg1 &= ~tmpreg2;
    /* Calculate the mask to set */
    tmpreg2 = ADC_SampleTime << (3 * (ADC_Channel - 10));
    /* Set the discontinuous mode channel count */
    tmpreg1 |= tmpreg2;
    /* Store the new register value */
    ADCx->SMPR1 = tmpreg1;
  }
  else /* ADC_Channel include in ADC_Channel[0..9] */
  {
    /* Get the old register value */
    tmpreg1 = ADCx->SMPR2;
    /* Calculate the mask to clear */
    tmpreg2 = SMPR2_SMP_Set << (3 * ADC_Channel);
    /* Clear the old discontinuous mode channel count */
    tmpreg1 &= ~tmpreg2;
    /* Calculate the mask to set */
    tmpreg2 = ADC_SampleTime << (3 * ADC_Channel);
    /* Set the discontinuous mode channel count */
    tmpreg1 |= tmpreg2;
    /* Store the new register value */
    ADCx->SMPR2 = tmpreg1;
  }
  /* For Rank 1 to 6 */
  if (Rank < 7)
  {
    /* Get the old register value */
    tmpreg1 = ADCx->SQR3;
    /* Calculate the mask to clear */
    tmpreg2 = SQR3_SQ_Set << (5 * (Rank - 1));
    /* Clear the old SQx bits for the selected rank */
    tmpreg1 &= ~tmpreg2;
    /* Calculate the mask to set */
    tmpreg2 = ADC_Channel << (5 * (Rank - 1));
    /* Set the SQx bits for the selected rank */
    tmpreg1 |= tmpreg2;
    /* Store the new register value */
    ADCx->SQR3 = tmpreg1;
  }
  /* For Rank 7 to 12 */
  else if (Rank < 13)
  {
    /* Get the old register value */
    tmpreg1 = ADCx->SQR2;
    /* Calculate the mask to clear */
    tmpreg2 = SQR2_SQ_Set << (5 * (Rank - 7));
    /* Clear the old SQx bits for the selected rank */
    tmpreg1 &= ~tmpreg2;
    /* Calculate the mask to set */
    tmpreg2 = ADC_Channel << (5 * (Rank - 7));
    /* Set the SQx bits for the selected rank */
    tmpreg1 |= tmpreg2;
    /* Store the new register value */
    ADCx->SQR2 = tmpreg1;
  }
  /* For Rank 13 to 16 */
  else
  {
    /* Get the old register value */
    tmpreg1 = ADCx->SQR1;
    /* Calculate the mask to clear */
    tmpreg2 = SQR1_SQ_Set << (5 * (Rank - 13));
    /* Clear the old SQx bits for the selected rank */
    tmpreg1 &= ~tmpreg2;
    /* Calculate the mask to set */
    tmpreg2 = ADC_Channel << (5 * (Rank - 13));
    /* Set the SQx bits for the selected rank */
    tmpreg1 |= tmpreg2;
    /* Store the new register value */
    ADCx->SQR1 = tmpreg1;
  }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情综合色播激情啊| 亚洲免费在线观看视频| 欧美午夜在线一二页| 不卡的av在线播放| 不卡高清视频专区| www.欧美日韩| 一本一道久久a久久精品| 91香蕉视频mp4| 色拍拍在线精品视频8848| 在线精品国精品国产尤物884a| 99久免费精品视频在线观看| 99久久久久久99| 色狠狠色狠狠综合| 欧美卡1卡2卡| 欧美电影免费观看高清完整版在| 日韩精品一区二区在线观看| 亚洲精品一区二区三区四区高清| 欧美精品一区二区三区蜜桃| 亚洲乱码国产乱码精品精可以看| 国产精品少妇自拍| 一区二区三区在线视频观看58 | 亚洲激情综合网| 亚洲国产精品尤物yw在线观看| 午夜精品在线看| 另类成人小视频在线| 国产成人精品免费视频网站| 一本一道久久a久久精品综合蜜臀| 在线免费亚洲电影| 欧美xxxx老人做受| 国产精品久久久一本精品| 亚洲动漫第一页| 国产精品一区二区免费不卡 | 亚洲一区二区欧美| 老司机午夜精品| 99国产精品99久久久久久| 欧美性一区二区| 精品88久久久久88久久久| 亚洲精品中文字幕乱码三区| 免费在线观看日韩欧美| 岛国av在线一区| 这里只有精品99re| 国产精品人人做人人爽人人添| 亚洲一区二区成人在线观看| 国内精品久久久久影院一蜜桃| 92精品国产成人观看免费| 欧美一区二区三区白人| 成人欧美一区二区三区| 精品亚洲免费视频| 欧美日韩一区不卡| 中文字幕欧美日韩一区| 免播放器亚洲一区| 在线视频国内一区二区| 国产女主播在线一区二区| 天天综合色天天| 91小视频在线观看| 久久久精品国产免大香伊| 日韩在线观看一区二区| 色一情一伦一子一伦一区| 久久久久久亚洲综合影院红桃| 日韩va亚洲va欧美va久久| 色就色 综合激情| 国产精品久久久久久久蜜臀 | 韩国三级在线一区| 欧美日韩成人一区| 一区二区三国产精华液| 99久久伊人精品| 中文无字幕一区二区三区| 九九久久精品视频| 91精品国产综合久久精品性色 | 日本大香伊一区二区三区| 国产精品视频观看| 成人小视频免费在线观看| 久久婷婷色综合| 精品一区二区三区在线播放视频 | 777精品伊人久久久久大香线蕉| 麻豆成人在线观看| 欧美视频在线一区| 一区二区三区自拍| 91精品91久久久中77777| 亚洲人成网站影音先锋播放| 成人免费视频视频在线观看免费| 久久久噜噜噜久久人人看| 国产一区二三区| 久久精品一区二区三区不卡| 国产一区二区在线影院| 欧美极品少妇xxxxⅹ高跟鞋| 大胆欧美人体老妇| 亚洲欧美另类图片小说| 欧美色图一区二区三区| 亚洲高清视频在线| 欧美一区二区三区精品| 精品一区二区免费在线观看| 国产偷国产偷精品高清尤物 | 色婷婷一区二区三区四区| 亚洲女人小视频在线观看| 欧美性videosxxxxx| 免费观看91视频大全| 欧美成人精品高清在线播放| 国产传媒久久文化传媒| 亚洲欧洲美洲综合色网| 欧美日韩国产大片| 久久精品国产免费| 国产精品青草久久| 欧美三级视频在线播放| 麻豆精品新av中文字幕| 国产精品久久久99| 欧美精品在线一区二区三区| 黑人巨大精品欧美一区| 亚洲日本护士毛茸茸| 91精品综合久久久久久| 成人av在线观| 偷拍日韩校园综合在线| 日本一区二区动态图| 欧美探花视频资源| 成人综合在线网站| 午夜影院在线观看欧美| 久久久久久99久久久精品网站| 91在线小视频| 韩国成人精品a∨在线观看| 国产精品久久久久久久久晋中| 欧美美女一区二区三区| 不卡视频在线看| 精品一区二区三区日韩| 亚洲愉拍自拍另类高清精品| 国产亚洲一区字幕| 欧美欧美欧美欧美| 99热这里都是精品| 久久se精品一区二区| 亚洲日本一区二区三区| 精品久久久久香蕉网| 欧美日韩免费不卡视频一区二区三区| 国产在线播放一区三区四| 亚洲国产日韩一区二区| 国产精品免费看片| 久久这里只有精品视频网| 欧美日韩在线播| 色综合久久久久久久久| 成人中文字幕在线| 九九视频精品免费| 日日夜夜精品免费视频| 亚洲一区免费在线观看| ...中文天堂在线一区| 久久色在线观看| 欧美一级午夜免费电影| 欧美久久久久免费| 欧美午夜精品电影| 在线亚洲欧美专区二区| 日韩欧美一区二区不卡| 一本大道久久a久久综合婷婷| 成人影视亚洲图片在线| 国产精品99久久久久久久女警| 日韩av电影免费观看高清完整版| 亚洲综合一区在线| 亚洲二区视频在线| 亚洲va中文字幕| 视频一区在线播放| 五月激情六月综合| 日韩激情视频在线观看| 日本伊人色综合网| 欧美aaaaaa午夜精品| 欧美aⅴ一区二区三区视频| 日本中文字幕一区| 日韩国产精品91| 久久国产精品99久久人人澡| 久久66热re国产| 国产福利一区二区三区视频 | 一区二区高清在线| 五月婷婷激情综合| 日韩在线卡一卡二| 国产在线播放一区二区三区| 国产一区二区精品在线观看| 风流少妇一区二区| 色综合天天综合网天天看片 | 奇米色777欧美一区二区| 蜜臀av一级做a爰片久久| 国产综合成人久久大片91| 国产麻豆日韩欧美久久| 成人一级视频在线观看| 欧美性猛交一区二区三区精品| 欧美日本在线视频| 久久久国产午夜精品| 中国av一区二区三区| 一区二区三区四区在线| 男人操女人的视频在线观看欧美 | 一区在线中文字幕| 婷婷成人综合网| 国产精品99久久久久久久vr| 色先锋资源久久综合| 欧美一区二区三区日韩| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲综合色区另类av| 国产一区二区三区久久久| 91福利视频网站| 国产婷婷色一区二区三区在线| 一区二区三区视频在线观看 | 欧美高清在线视频| 日韩精品高清不卡| 91视频在线观看| 2023国产精华国产精品| 一区二区三国产精华液|