⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_adc.c

📁 stm32f10xx的中文译文例程
💻 C
📖 第 1 页 / 共 3 页
字号:
/*******************************************************************************
* 函数名称: ADC_DMACmd
* 功能描述: 使能/禁止指定的ADC DMA请求.
* 输入参数: (1)ADCx: 其中x可以是1、2或3,用来选择ADC外围模块.
*                    注意: ADC2 没有 DMA 能力.
*           (2)ADC DMA转移器的新状态这个参数可以是:ENABLE或DISABLE。
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  /* Check the parameters 检查参数 检查参数*/
  assert_param(IS_ADC_DMA_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the selected ADC DMA request [允许选择的ADC DMA请求]*/
    ADCx->CR2 |= CR2_DMA_Set;
  }
  else
  {
    /* Disable the selected ADC DMA request [禁用选择的ADC DMA请求]*/
    ADCx->CR2 &= CR2_DMA_Reset;
  }
}

/*******************************************************************************
* 函数名称: ADC_ITConfig
* 功能描述: 使能/禁止指定的ADC中断.
* 输入参数: (1)ADCx: 其中x可以是1、2或3,用来选择ADC外围模块.
*           (2)ADC_IT: 指定ADC中断源是使能的或禁止的.
*                    ADC_IT 用来使能或者禁止ADC 中断.可以使用下述值的一个或者几个值的组合:
*                       - ADC_IT_EOC: EOC中断屏蔽
*                       - ADC_IT_AWD: AWDOG中断屏蔽
*                       - ADC_IT_JEOC: JEOC中断屏蔽
*           (3)NewState: 指定的ADC中断的新状态这个参数可以是:ENABLE或DISABLE
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_ITConfig(ADC_TypeDef* ADCx, u16 ADC_IT, FunctionalState NewState)
{
  u8 itmask = 0;

  /* Check the parameters [检查参数]*/
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));
  assert_param(IS_ADC_IT(ADC_IT));

  /* Get the ADC IT index [取得ADC IT中断号]*/
  itmask = (u8)ADC_IT;

  if (NewState != DISABLE)
  {
    /* Enable the selected ADC interrupts [允许选择的ADC 中断]*/
    ADCx->CR1 |= itmask;
  }
  else
  {
    /* Disable the selected ADC interrupts [禁用选择的ADC 中断]*/
    ADCx->CR1 &= (~(u32)itmask);
  }
}

/*******************************************************************************
* 函数名称: ADC_ResetCalibration
* 功能描述: 重置选中的ADC校准寄存器
* 输入参数: ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_ResetCalibration(ADC_TypeDef* ADCx)
{
  /* Check the parameters [检查参数]*/
  assert_param(IS_ADC_ALL_PERIPH(ADCx));

  /* Resets the selected ADC calibration registers [复位选择的ADC校准寄存器]*/
  ADCx->CR2 |= CR2_RSTCAL_Set;
}

/*******************************************************************************
* 函数名称: ADC_GetResetCalibrationStatus
* 功能描述: 得到选中的ADC重置校准寄存器的状态.
* 输入参数: ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
* 输出参数: 无
* 返回参数: ADC重置校准寄存器的新状态(SET或RESET).
*******************************************************************************/
FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));

  /* Check the status of RSTCAL bit [检查状态位RSTCAL]*/
  if ((ADCx->CR2 & CR2_RSTCAL_Set) != (u32)RESET)
  {
    /* RSTCAL bit is set [置位RSTCAL]*/
    bitstatus = SET;
  }
  else
  {
    /* RSTCAL bit is reset [复位RSTCAL]*/
    bitstatus = RESET;
  }

  /* Return the RSTCAL bit status [返回状态位RSTCAL]*/
  return  bitstatus;
}

/*******************************************************************************
* 函数名称: ADC_StartCalibration
* 功能描述: 开始选中的ADC校准过程.
* 输入参数: ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_StartCalibration(ADC_TypeDef* ADCx)
{
  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));

  /* Enable the selected ADC calibration process [允许被选择的ADC校准过程]*/
  ADCx->CR2 |= CR2_CAL_Set;
}

/*******************************************************************************
* 函数名称: ADC_GetCalibrationStatus
* 功能描述: 得到选中的ADC 校准的状态
* 输入参数: ADCx:其中x可以是1、2或3,用来选择ADC外围模块..
* 输出参数: 无
* 返回参数: ADC 校准的新状态(SET 或RESET).
*******************************************************************************/
FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));

  /* Check the status of CAL bit [检查状态位CAL]*/
  if ((ADCx->CR2 & CR2_CAL_Set) != (u32)RESET)
  {
    /* CAL bit is set: calibration on going [CAL设置:校准开始]*/
    bitstatus = SET;
  }
  else
  {
    /* CAL bit is reset: end of calibration [CAL复位:结束校准]*/
    bitstatus = RESET;
  }

  /* Return the CAL bit status [返回状态位CAL]*/
  return  bitstatus;
}

/*******************************************************************************
* 函数名称: ADC_SoftwareStartConvCmd
* 功能描述: 使能/禁止选中的ADC由软件控制开始转换 .
* 输入参数: (1)ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
*           (2)NewState:选中的由软件发出开始信号的ADC的新状态这个参数可以是:ENABLE或DISABLE
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the selected ADC conversion on external event and start the selected
       ADC conversion [允许选择的ADC转换外部事件和启动选择的ADC转换]*/
    ADCx->CR2 |= CR2_EXTTRIG_SWSTART_Set;
  }
  else
  {
    /* Disable the selected ADC conversion on external event and stop the selected
       ADC conversion [禁止选择的ADC转换外部事件和停止选择的ADC转换]*/
    ADCx->CR2 &= CR2_EXTTRIG_SWSTART_Reset;
  }
}

/*******************************************************************************
* 函数名称: ADC_GetSoftwareStartConvStatus
* 功能描述: 获得选中ADC软件开始转换状态。
* 输入参数: ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
* 输出参数: 无
* 返回参数: ADC软件开始转换的新状态(SET或RESET).
*******************************************************************************/
FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)
{
  FlagStatus bitstatus = RESET;

  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));

  /* Check the status of SWSTART bit [检查状态位SWSTART]*/
  if ((ADCx->CR2 & CR2_SWSTART_Set) != (u32)RESET)
  {
    /* SWSTART bit is set [置位SWSTART]*/
    bitstatus = SET;
  }
  else
  {
    /* SWSTART bit is reset [复位SWSTART]*/
    bitstatus = RESET;
  }

  /* Return the SWSTART bit status [返回状态位SWSTART]*/
  return  bitstatus;
}

/*******************************************************************************
* 函数名称: ADC_DiscModeChannelCountConfig
* 功能描述: 配置选中的ADC常规组为非连续模式.
* 输入参数: (1)ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
*           (2)Number:非连续模式下常规信道计数值。该值范围为1-8。
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, u8 Number)
{
  u32 tmpreg1 = 0;
  u32 tmpreg2 = 0;

  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_ADC_REGULAR_DISC_NUMBER(Number));

  /* 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;
}

/*******************************************************************************
* 函数名称: ADC_DiscModeCmd
* 功能描述: 使能/禁止指定的ADC常规组信道的非连续模式
* 输入参数: (1)ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
*           (2)NewState: ADC常规组信道下非连续模式的新状态这个参数可以是:ENABLE或DISABLE。
* 输出参数: 无
* 返回参数: 无
*******************************************************************************/
void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
{
  /* Check the parameters [检查参数] */
  assert_param(IS_ADC_ALL_PERIPH(ADCx));
  assert_param(IS_FUNCTIONAL_STATE(NewState));

  if (NewState != DISABLE)
  {
    /* Enable the selected ADC regular discontinuous mode [允许选择的ADC规则间断模式]*/
    ADCx->CR1 |= CR1_DISCEN_Set;
  }
  else
  {
    /* Disable the selected ADC regular discontinuous mode [禁止选择的ADC规则间断模式]*/
    ADCx->CR1 &= CR1_DISCEN_Reset;
  }
}

/*******************************************************************************
* 函数名称: ADC_RegularChannelConfig
* 功能描述: 为选中的ADC常规组信道配置相关的音序器(sequencer)等级和采样时间。
* 输入参数: (1)ADCx:其中x可以是1、2或3,用来选择ADC外围模块.
*           (2)ADC_Channel:需要配置的ADC信道
*                    ADC_Channel 可能的取值:
*                       - ADC_Channel_0: ADC信道0被选择

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -