16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用

1 ADC 固件库函数预览

序号函数名描述
1ADC_DeInit将外设 ADCx 的全部寄存器重设为缺省值
2ADC_Init根据 ADC_InitStruct 中指定的参数初始化外设 ADCx 的寄存器
3ADC_StructInit把 ADC_InitStruct 中的每一个参数按缺省值填入
4ADC_Cmd使能或者失能指定的 ADC
5ADC_DMACmd使能或者失能指定的 ADC 的 DMA 请求
6ADC_ITConfig使能或者失能指定的 ADC 的中断
7ADC_ResetCalibration重置指定的 ADC 的校准寄存器
8ADC_GetResetCalibrationStatus获取 ADC 重置校准寄存器的状态
9ADC_StartCalibration开始指定 ADC 的校准程序
10ADC_GetCalibrationStatus获取指定 ADC 的校准状态
11ADC_SoftwareStartConvCmd使能或者失能指定的 ADC 的软件转换启动功能
12ADC_GetSoftwareStartConvStatus获取 ADC 软件转换启动状态
13ADC_DiscModeChannelCountConfig对 ADC 规则组通道配置间断模式
14ADC_DiscModeCmd使能或者失能指定的 ADC 规则组通道的间断模式
15ADC_RegularChannelConfig设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间
16ADC_ExternalTrigConvConfig使能或者失能 ADCx 的经外部触发启动转换功能
17ADC_GetConversionValue返回最近一次 ADCx 规则组的转换结果
18ADC_GetDuelModeConversionValue返回最近一次双 ADC 模式下的转换结果
19ADC_AutoInjectedConvCmd使能或者失能指定 ADC 在规则组转化后自动开始注入组转换
20ADC_InjectedDiscModeCmd使能或者失能指定 ADC 的注入组间断模式
21ADC_ExternalTrigInjectedConvConfig配置 ADCx 的外部触发启动注入组转换功能
22ADC_ExternalTrigInjectedConvCmd使能或者失能 ADCx 的经外部触发启动注入组转换功能
23ADC_SoftwareStartinjectedConvCmd使能或者失能 ADCx 软件启动注入组转换功能
24ADC_GetsoftwareStartinjectedConvStatus获取指定 ADC 的软件启动注入组转换状态
25ADC_InjectedChannleConfig设置指定 ADC 的注入组通道,设置它们的转换顺序和采样时间
26ADC_InjectedSequencerLengthConfig设置注入组通道的转换序列长度
27ADC_SetinjectedOffset设置注入组通道的转换偏移值
28ADC_GetInjectedConversionValue返回 ADC 指定注入通道的转换结果
29ADC_AnalogWatchdogCmd使能或者失能指定单个/全体,规则/注入组通道上的模拟看门狗
30ADC_AnalogWatchdongThresholdsConfig设置模拟看门狗的高/低阈值
31ADC_AnalogWatchdongSingleChannelConfig对单个 ADC 通道设置模拟看门狗
32ADC_TampSensorVrefintCmd使能或者失能温度传感器和内部参考电压通道
33ADC_GetFlagStatus检查制定 ADC 标志位置 1 与否
34ADC_ClearFlag清除 ADCx 的待处理标志位
35ADC_GetITStatus检查指定的 ADC 中断是否发生
36ADC_ClearITPendingBit清除 ADCx 的中断待处理位

1.1 函数 ADC_DeInit

函数名ADC_DeInit
函数原形void ADC_DeInit(ADC_TypeDef* ADCx)
功能描述将外设 ADCx 的全部寄存器重设为缺省值
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数 2
返回值
先决条件
被调用函数RCC_APB2PeriphClockCmd()

例:
/* Resets ADC2 */
ADC_DeInit(ADC2);

1.2 函数 ADC_Init

函数名ADC_Init
函数原形void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)
功能描述根据 ADC_InitStruct 中指定的参数初始化外设 ADCx 的寄存器
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_InitStruct:指向结构 ADC_InitTypeDef 的指针, 包含了指定外设 ADC 的配置信息 参阅: 4.2.3 ADC_StructInit 获得 ADC_InitStruct 值的完整描述
输出参数
返回值
先决条件
被调用函数

ADC_InitTypeDef structure

typedef struct
{
u32 ADC_Mode;
FunctionalState ADC_ScanConvMode;
FunctionalState ADC_ContinuousConvMode;
u32 ADC_ExternalTrigConv;
u32 ADC_DataAlign;
u8 ADC_NbrOfChannel;
} ADC_InitTypeDef
ADC_Mode
ADC_Mode 设置 ADC 工作在独立或者双 ADC 模式

ADC_Mode描述
ADC_Mode_IndependentADC1 和 ADC2 工作在独立模式
ADC_Mode_RegInjecSimultADC1 和 ADC2 工作在同步规则和同步注入模式
ADC_Mode_RegSimult_AlterTrigADC1 和 ADC2 工作在同步规则模式和交替触发模式
ADC_Mode_InjecSimult_FastInterlADC1 和 ADC2 工作在同步规则模式和快速交替模式
ADC_Mode_InjecSimult_SlowInterlADC1 和 ADC2 工作在同步注入模式和慢速交替模式
ADC_Mode_InjecSimultADC1 和 ADC2 工作在同步注入模式
ADC_Mode_RegSimultADC1 和 ADC2 工作在同步规则模式
ADC_Mode_FastInterlADC1 和 ADC2 工作在快速交替模式
ADC_Mode_SlowInterlADC1 和 ADC2 工作在慢速交替模式
ADC_Mode_AlterTrigADC1 和 ADC2 工作在交替触发模式

ADC_ScanConvMode 规定了模数转换工作在扫描模式(多通道) 还是单次(单通道) 模式。可以设置这个 参数为 ENABLE 或者 DISABLE。

ADC_ContinuousConvMode 规定了模数转换工作在连续还是单次模式。可以设置这个参数为 ENABLE 或 者 DISABLE。

ADC_ExternalTrigConv 定义了使用外部触发来启动规则通道的模数转换,

ADC_ExternalTrigConv描述
ADC_ExternalTrigConv_T1_CC1选择定时器 1 的捕获比较 1 作为转换外部触发
ADC_ExternalTrigConv_T1_CC2选择定时器 1 的捕获比较 2 作为转换外部触发
ADC_ExternalTrigConv_T1_CC3选择定时器 1 的捕获比较 3 作为转换外部触发
ADC_ExternalTrigConv_T2_CC2选择定时器 2 的捕获比较 2 作为转换外部触发
ADC_ExternalTrigConv_T3_TRGO选择定时器 3 的 TRGO 作为转换外部触发
ADC_ExternalTrigConv_T4_CC4选择定时器 4 的捕获比较 4 作为转换外部触发
ADC_ExternalTrigConv_Ext_IT11选择外部中断线 11 事件作为转换外部触发
ADC_ExternalTrigConv_None转换由软件而不是外部触发启动

ADC_DataAlign 规定了 ADC 数据向左边对齐还是向右边对齐。

ADC_DataAlign描述
ADC_DataAlign_RightADC 数据右对齐
ADC_DataAlign_LeftADC 数据左对齐

例:
/* Initialize the ADC1 according to the ADC_InitStructure members */
ADC_InitTypeDef ADC_InitStructure;
ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_InitStructure.ADC_ScanConvMode = ENABLE;
ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;
ADC_InitStructure.ADC_ExternalTrigConv =
ADC_ExternalTrigConv_Ext_IT11;
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
ADC_InitStructure.ADC_NbrOfChannel = 16;
ADC_Init(ADC1, &ADC_InitStructure);

注意:为了能够正确地配置每一个 ADC 通道,用户在调用 ADC_Init()之后,必须调用 ADC_ChannelConfig() 来配置每个所使用通道的转换次序和采样时间。

1.3 函数 ADC_StructInit

函数名描述
ADC_StructInit把 ADC_InitStruct 中的每一个参数按缺省值填入
输入参数ADC_InitStruct:指向结构 ADC_InitTypeDef 的指针,待初始化
输出参数
返回值
先决条件
被调用函数
成员缺省值
ADC_ModeADC_Mode_Independent
ADC_ScanConvModeDISABLE
ADC_ContinuousConvModeDISABLE
ADC_ExternalTrigConvADC_ExternalTrigConv_T1_CC1
ADC_DataAlignADC_DataAlign_Right
ADC_NbrOfChannel1

例:
/* Initialize a ADC_InitTypeDef structure. */
ADC_InitTypeDef ADC_InitStructure;
ADC_StructInit(&ADC_InitStructure);

1.4 函数 ADC_Cmd

函数名描述
ADC_Cmd使能或者失能指定的 ADC
函数原形void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定的 ADC
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:外设 ADCx 的新状态,可取值: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数

例:
/* Enable ADC1 */
ADC_Cmd(ADC1, ENABLE);
注意:函数 ADC_Cmd 只能在其他 ADC 设置函数之后被调用。

1.5 函数 ADC_DMACmd

函数名描述
ADC_DMACmd使能或者失能指定的 ADC 的 DMA 请求
函数原形void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定的 ADC 的 DMA 请求
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:ADC DMA 传输的新状态,可取值: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数

例:
/* Enable ADC2 DMA transfer */
ADC_DMACmd(ADC2, ENABLE);

1.6 函数 ADC_ITConfig

函数名描述
ADC_ITConfig使能或者失能指定的 ADC 的中断
函数原形void ADC_ITConfig(ADC_TypeDef* ADCx, u16 ADC_IT, FunctionalState NewState)
功能描述使能或者失能指定的 ADC 的中断
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_IT:将要被使能或者失能的指定 ADC 中断源,参阅章节 ADC_IT 获得该参数可取值的更多细节
输入参数 3NewState:指定 ADC 中断的新状态,可取值: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数

ADC_IT 可以用来使能或者失能 ADC 中断。

ADC_IT描述
ADC_IT_EOCEOC 中断屏蔽
ADC_IT_AWDAWDOG 中断屏蔽
ADC_IT_JEOCJEOC 中断屏蔽

例:
/* Enable ADC2 EOC and AWDOG interrupts */
ADC_ITConfig(ADC2, ADC_IT_EOC | ADC_IT_AWD, ENABLE);

1.7 函数 ADC_ResetCalibration

函数名描述
ADC_ResetCalibration重置指定的 ADC 的校准寄存器
函数原形void ADC_ResetCalibration(ADC_TypeDef* ADCx)
功能描述重置指定的 ADC 的校准寄存器
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值
先决条件
被调用函数

例:
/* Reset the ADC1 Calibration registers */
ADC_ResetCalibration(ADC1);

1.8 函数 ADC_ GetResetCalibrationStatus

函数名描述
ADC_GetResetCalibrationStatus获取 ADC 重置校准寄存器的状态
函数原形FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)
功能描述获取 ADC 重置校准寄存器的状态
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值ADC 重置校准寄存器的新状态(SET 或者 RESET)
先决条件
被调用函数

例:
/* Get the ADC2 reset calibration registers status */
FlagStatus Status;
Status = ADC_GetResetCalibrationStatus(ADC2);

1.9 函数 ADC_StartCalibration

函数名描述
ADC_StartCalibration开始指定 ADC 的校准状态
函数原形void ADC_StartCalibration(ADC_TypeDef* ADCx)
功能描述开始指定 ADC 的校准状态
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值
先决条件
被调用函数

例:
/* Start the ADC2 Calibration */
ADC_StartCalibration(ADC2);

1.10 函数 ADC_GetCalibrationStatus

函数名描述
ADC_GetCalibrationStatus获取指定 ADC 的校准程序
函数原形FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)
功能描述获取指定 ADC 的校准程序
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值ADC 校准的新状态(SET 或者 RESET)
先决条件
被调用函数

例:
/* Get the ADC2 calibration status */
FlagStatus Status;
Status = ADC_GetCalibrationStatus(ADC2);

1.11 函数 ADC_SoftwareStartConvCmd

函数名描述
ADC_SoftwareStartConvCmd使能或者失能指定的 ADC 的软件转换启动功能
函数原形void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定的 ADC 的软件转换启动功能
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:指定 ADC 的软件转换启动新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数

例:
/* Start by software the ADC1 Conversion */
ADC_SoftwareStartConvCmd(ADC1, ENABLE);

1.12 函数 ADC_GetSoftwareStartConvStatus

函数名描述
ADC_GetSoftwareStartConvStatus获取 ADC 软件转换启动状态
函数原形void ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)
功能描述获取 ADC 软件转换启动状态
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值ADC 软件转换启动的新状态(SET 或者 RESET)
先决条件
被调用函数

例 /* Get the ADC1 conversion start bit */ FlagStatus Status; Status = ADC_GetSoftwareStartConvStatus(ADC1);

1.13 函数 ADC_DiscModeChannelCountConfig

函数名描述
ADC_DiscModeChannelCountConfig对 ADC 规则组通道配置间断模式
函数原形void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, u8 Number)
功能描述对 ADC 规则组通道配置间断模式
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2Number:间断模式规则组通道计数器的值。这个值得范围为 1 到 8。
输出参数
返回值
先决条件
被调用函数
/* Set the discontinuous mode channel count to 2 for ADC1 */ ADC_DiscModeChannelCountConfig(ADC1, 2);

1.14 函数 ADC_DiscModeCmd

函数名描述
ADC_DiscModeCmd使能或者失能指定的 ADC 规则组通道的间断模式
函数原形void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定的 ADC 规则组通道的间断模式
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:ADC 规则组通道上间断模式的新状态。这个参数可以取: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数
/* Disable the discontinuous mode for ADC1 regular group channel */ ADC_DiscModeCmd(ADC1, ENABLE);

1.15 函数 ADC_RegularChannelConfig

函数名描述
ADC_RegularChannelConfig设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间
函数原形void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)
功能描述设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_Channel:被设置的 ADC 通道。参阅章节 ADC_Channel 查阅更多该参数允许取值范围
输入参数 3Rank:规则组采样顺序。取值范围 1 到 16。
输入参数 4ADC_SampleTime:指定 ADC 通道的采样时间值。参阅章节 ADC_SampleTime 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数
ADC_Channel参数 ADC_Channel 指定了通过调用函数 ADC_RegularChannelConfig 来设置的 ADC 通道。 Table 26. 列举 了 ADC_Channel 可取的值:

参数 ADC_Channel 指定了通过调用函数 ADC_RegularChannelConfig 来设置的 ADC 通道

参数描述
ADC_Channel_0选择 ADC 通道 0
ADC_Channel_1选择 ADC 通道 1
ADC_Channel_2选择 ADC 通道 2
ADC_Channel_3选择 ADC 通道 3
ADC_Channel_4选择 ADC 通道 4
ADC_Channel_5选择 ADC 通道 5
ADC_Channel_6选择 ADC 通道 6
ADC_Channel_7选择 ADC 通道 7
ADC_Channel_8选择 ADC 通道 8
ADC_Channel_9选择 ADC 通道 9
ADC_Channel_10选择 ADC 通道 10
ADC_Channel_11选择 ADC 通道 11
ADC_Channel_12选择 ADC 通道 12
ADC_Channel_13选择 ADC 通道 13
ADC_Channel_14选择 ADC 通道 14
ADC_Channel_15选择 ADC 通道 15
ADC_Channel_16选择 ADC 通道 16
ADC_Channel_17选择 ADC 通道 17

ADC_SampleTime 设定了选中通道的 ADC 采样时间

参数描述
ADC_SampleTime_1Cycles5采样时间为 1.5 周期
ADC_SampleTime_7Cycles5采样时间为 7.5 周期
ADC_SampleTime_13Cycles5采样时间为 13.5 周期
ADC_SampleTime_28Cycles5采样时间为 28.5 周期
ADC_SampleTime_41Cycles5采样时间为 41.5 周期
ADC_SampleTime_55Cycles5采样时间为 55.5 周期
ADC_SampleTime_71Cycles5采样时间为 71.5 周期
ADC_SampleTime_239Cycles5采样时间为 239.5 周期

| 例 | /* Configures ADC1 Channel2 as: first converted channel with a 7.5 cycles sample time / ADC_RegularChannelConfig(ADC1, ADC_Channel_2, 1, ADC_SampleTime_7Cycles5); / Configures ADC1 Channel8 as: second converted channel with a 1.5 cycles sample time */ ADC_RegularChannelConfig(ADC1, ADC_Channel_8, 2, ADC_SampleTime_1Cycles5); |

1.16 函数 ADC_ExternalTrigConvConfig

函数名ADC_ExternalTrigConvConfig
函数原形void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能 ADCx 的经外部触发启动转换功能
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:指定 ADC 外部触发转换启动的新状态
这个参数可以取: ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数
/*Enable the start of conversion for ADC1 through exteral trigger */ ADC_ExternalTrigConvCmd(ADC1, ENABLE);

例:
/*Enable the start of conversion for ADC1 through exteral trigger */
ADC_ExternalTrigConvCmd(ADC1, ENABLE);

1.17 函数 ADC_GetConversionValue

函数名ADC_GetConversionValue
函数原形u16 ADC_GetConversionValue(ADC_TypeDef* ADCx)
功能描述返回最近一次 ADCx 规则组的转换结果
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值转换结果
先决条件
被调用函数

|例
u16 DataValue;
DataValue = ADC_GetConversionValue(ADC1);

1.18 函数 ADC_GetDuelModeConversionValue

函数名ADC_GetDuelModeConversionValue
函数原形u32 ADC_GetDualModeConversionValue()
功能描述返回最近一次双 ADC 模式下的转换结果
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值转换结果
先决条件
被调用函数
/* Returns the ADC1 and ADC2 last converted values*/ u32 DataValue; DataValue = ADC_GetDualModeConversionValue();

1.19 函数 ADC_AutoInjectedConvCmd

函数名ADC_AutoInjectedConvCmd
函数原形void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定 ADC 在规则组转化后自动开始注入组转换
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:指定 ADC 自动注入转化的新状态(可取值:ENABLE 或者 DISABLE)
输出参数
返回值
先决条件
被调用函数
/* Enable the auto injected conversion for ADC2 */ ADC_AutoInjectedConvCmd(ADC2, ENABLE);

1.20 函数 ADC_InjectedDiscModeCmd

函数名ADC_InjectedDiscModeCmd
函数原形void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能指定 ADC 的注入组间断模式
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:ADC 注入组通道上间断模式的新状态(可取值:ENABLE 或者 DISABLE)
输出参数
返回值
先决条件
被调用函数
/* Enable the injected discontinuous mode for ADC2 */ ADC_InjectedDiscModeCmd(ADC2, ENABLE);

1.21 函数 ADC_ExternalTrigInjectedConvConfig

函数名ADC_ExternalTrigInjectedConvConfig
函数原形void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, u32 ADC_ExternalTrigConv)
功能描述配置 ADCx 的外部触发启动注入组转换功能
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_ExternalTrigConv:启动注入转换的 ADC 触发
输出参数
返回值
先决条件
被调用函数
相关参数参见下方的ADC_ExternalTrigInjectedConv表格

ADC_ExternalTrigInjectedConv 值

ADC_ExternalTrigInjectedConv描述
ADC_ExternalTrigInjecConv_T1_TRGO选择定时器 1 的 TRGO 作为注入转换外部触发
ADC_ExternalTrigInjecConv_T1_CC4选择定时器 1 的捕获比较 4 作为注入转换外部触发
ADC_ExternalTrigInjecConv_T2_TRGO选择定时器 2 的 TRGO 作为注入转换外部触发
ADC_ExternalTrigInjecConv_T2_CC1选择定时器 2 的捕获比较 1 作为注入转换外部触发
ADC_ExternalTrigInjecConv_T3_CC4选择定时器 3 的捕获比较 4 作为注入转换外部触发
ADC_ExternalTrigInjecConv_T4_TRGO选择定时器 4 的 TRGO 作为注入转换外部触发
ADC_ExternalTrigInjecConv_Ext_IT15选择外部中断线 15 事件作为注入转换外部触发
ADC_ExternalTrigInjecConv_None注入转换由软件而不是外部触发启动


/* Set ADC1 injected external trigger conversion start to Timer1 capture compare4 */
ADC_ExternalTrigInjectedConvConfig(ADC1, ADC_ExternalTrigConv_T1_CC4);

1.22 函数ADC_ExternalTrigInjectedConvCmd

函数名ADC_ExternalTrigInjectedConvCmd
函数原形void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能 ADCx 的经外部触发启动注入组转换功能
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:指定 ADC 外部触发启动注入转换的新状态(可取值:ENABLE 或者 DISABLE)
输出参数
返回值
先决条件
被调用函数
/* Enable the start of injected conversion for ADC1 through external trigger */ ADC_ExternalTrigInjectedConvCmd(ADC1, ENABLE);

1.23 函数ADC_SoftwareStartinjectedConvCmd

函数名ADC_SoftwareStartInjectedConvCmd
函数原形void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
功能描述使能或者失能 ADCx 软件启动注入组转换功能
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2NewState:指定 ADC 软件触发启动注入转换的新状态(可取值:ENABLE 或者 DISABLE)
输出参数
返回值
先决条件
被调用函数
/* Start by software the ADC2 Conversion */ ADC_SoftwareStartInjectedConvCmd(ADC2, ENABLE);

1.24 函数 ADC_GetsoftwareStartinjectedConvStatus

以下是将给定内容转换为Markdown表格格式的结果:

markdown
Copy code

函数名ADC_GetSoftwareStartInjectedConvStatus
函数原形FlagStatus ADC_GetSoftwareStartInjectedConvStatus(ADC_TypeDef* ADCx)
功能描述获取指定 ADC 的软件启动注入组转换状态
输入参数ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输出参数
返回值ADC 软件触发启动注入转换的新状态
先决条件
被调用函数
/* Get the ADC1 injected conversion start bit */ FlagStatus Status; Status = ADC_GetSoftwareStartInjectedConvStatus(ADC1);

1.25 函数ADC_InjectedChannleConfig

函数名ADC_InjectedChannelConfig
函数原形void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel, u8 Rank, u8 ADC_SampleTime)
功能描述设置指定 ADC 的注入组通道,设置它们的转化顺序和采样时间
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_Channel:被设置的 ADC 通道(参阅章节 ADC_Channel 查阅更多该参数允许取值范围)
输入参数 3Rank:规则组采样顺序。取值范围 1 到 4。
输入参数 4ADC_SampleTime:指定 ADC 通道的采样时间值(参阅章节 ADC_SampleTime 查阅更多该参数允许取值范围)
输出参数
返回值
先决条件之前必须调用函数 ADC_InjectedSequencerLengthConfig 来确定注入转换通道的数目。特别是在通道数目小于 4 的情况下,来正确配置每个注入通道的转化顺序。
被调用函数
ADC_Channel参数 ADC_Channel 指定了需设置的 ADC 通道。Table 26. 列举了 ADC_Channel 可取的值。
ADC_SampleTimeADC_SampleTime 设定了选中通道的 ADC 采样时间。Table 27. 列举了 ADC_SampleTime 可取的值。
/* Configures ADC1 Channel12 as: second converted channel with a 28.5 cycles sample time */ ADC_InjectedChannelConfig(ADC1, ADC_Channel_12, 2, ADC_SampleTime_28Cycles5); /* Configures ADC2 Channel4 as: eleven converted channel with a 71.5 cycles sample time */ ADC_InjectedChannelConfig(ADC2, ADC_Channel_4, 11, ADC_SampleTime_71Cycles5);

1.26 函数ADC_InjectedSequencerLengthConfig

函数名ADC_InjectedSequencerLengthConfig
函数原形void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, u8 Length)
功能描述设置注入组通道的转换序列长度
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2Length:序列长度(这个参数取值范围 1 到 4)
输出参数
返回值
先决条件
被调用函数
/* Set the ADC1 Sequencer length to 4 channels */ ADC_InjectedSequencerLengthConfig(ADC1, 4);

1.27 函数ADC_SetinjectedOffset

函数名ADC_SetInjectedOffset
函数原形void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, u8 ADC_InjectedChannel, u16 Offset)
功能描述设置注入组通道的转换偏移值
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_InjectedChannel:被设置转换偏移值的 ADC 注入通道(参阅章节 ADC_InjectedChannel 查阅更多该参数允许取值范围)
输入参数 3Offset:ADC 注入通道的转换偏移值(这个值是一个 12 位值)
输出参数
返回值
先决条件
被调用函数
ADC_InjectedChannel参数 ADC_InjectedChannel 指定了必须设置转换偏移值的 ADC 通道。Table 41. 列举了 ADC_InjectedChannel 可取的值。 Table 41. ADC InjectedChannel 值 ADC_InjectedChannel
/* Set the offset 0x100 for the 3rd injected Channel of ADC1 */ ADC_SetInjectedOffset(ADC1, ADC_InjectedChannel_3, 0x100);

ADC_InjectedChannel 指定了必须设置转换偏移值的ADC 通道。

ADC_InjectedChannel描述
ADC_InjectedChannel_1选择注入通道 1
ADC_InjectedChannel_2选择注入通道 2
ADC_InjectedChannel_3选择注入通道 3
ADC_InjectedChannel_4选择注入通道 4

1.28 函数ADC_GetInjectedConversionValue

函数名ADC_GetInjectedConversionValue
函数原形u16 ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, u8 ADC_InjectedChannel)
功能描述返回 ADC 指定注入通道的转换结果
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_InjectedChannel:被转换的 ADC 注入通道
参阅章节ADC_InjectedChannel 查阅更多该参数允许取值范围
输出参数
返回值转换结果
先决条件
被调用函数
u16 InjectedDataValue; InjectedDataValue = ADC_GetInjectedConversionValue(ADC1, ADC_InjectedChannel_1);

1.29 函数ADC_AnalogWatchdogCmd

函数名ADC_AnalogWatchdogCmd
函数原形void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, u32 ADC_AnalogWatchdog)
功能描述使能或者失能指定单个/全体,规则/注入组通道上的模拟看门狗
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_AnalogWatchdog:ADC 模拟看门狗设置
参阅章节ADC_AnalogWatchdog 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数
ADC_AnalogWatchdogADC_AnalogWatchdog 规定了 ADC 模拟看门狗的设置。
Table 44. 列举了 ADC_AnalogWatchdog 可取的值:
ADC_AnalogWatchdog描述
ADC_AnalogWatchdog_SingleRegEnable单个规则通道上设置模拟看门狗
ADC_AnalogWatchdog_SingleInjecEnable单个注入通道上设置模拟看门狗
ADC_AnalogWatchdog_SingleRegorInjecEnable单个规则通道或者注入通道上设置模拟看门狗
ADC_AnalogWatchdog_AllRegEnable所有规则通道上设置模拟看门狗
ADC_AnalogWatchdog_AllInjecEnable所有注入通道上设置模拟看门狗
ADC_AnalogWatchdog_AllRegAllInjecEnable所有规则通道和所有注入通道上上设置模拟看门狗
ADC_AnalogWatchdog_None不设置模拟看门狗

1.30 函数ADC_AnalogWatchdongThresholdsConfig

函数名ADC_AnalogWatchdongThresholdsConfig
函数原形void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, u16 HighThreshold, u16 LowThreshold)
功能描述设置模拟看门狗的高/低阈值
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2HighThreshold:模拟看门狗的高阈值
输入参数 3LowThreshold:模拟看门狗的低阈值
输出参数
返回值
先决条件
被调用函数
ADC_AnalogWatchdogThresholdsConfig(ADC1, 0x400, 0x100);

1.31 函数ADC_AnalogWatchdongSingleChannelConfig

函数名ADC_AnalogWatchdongSingleChannelConfig
函数原形void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel)
功能描述对单个 ADC 通道设置模拟看门狗
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_Channel:被设置模拟看门狗的 ADC 通道
参阅章节ADC_Channel 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数
ADC_AnalogWatchdogSingleChannelConfig(ADC1, ADC_Channel_1);

1.32 函数ADC_TampSensorVrefintCmd

函数名ADC_TampSensorVrefintCmd
函数原形void ADC_TempSensorVrefintCmd(FunctionalState NewState)
功能描述使能或者失能温度传感器和内部参考电压通道
输入参数NewState:温度传感器和内部参考电压通道的新状态
这个参数可以取:ENABLE 或者 DISABLE
输出参数
返回值
先决条件
被调用函数
ADC_TempSensorVrefintCmd(ENABLE);

1.33 函数ADC_GetFlagStatus

函数名ADC_GetFlagStatus
函数原形FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, u8 ADC_FLAG)
功能描述检查指定 ADC 标志位置 1 与否
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_FLAG:指定需检查的标志位
参阅章节ADC_FLAG 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数

ADC_FLAG 的值

ADC_FLAG描述
ADC_FLAG_AWD模拟看门狗标志位
ADC_FLAG_EOC转换结束标志位
ADC_FLAG_JEOC注入组转换结束标志位
ADC_FLAG_JSTRT注入组转换开始标志位
ADC_FLAG_STRT规则组转换开始标志位
FlagStatus Status; Status = ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC);

1.34 函数ADC_ClearFlag

函数名ADC_ClearFlag
函数原形void ADC_ClearFlag(ADC_TypeDef* ADCx, u8 ADC_FLAG)
功能描述清除 ADCx 的待处理标志位
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_FLAG:待处理的标志位,使用操作符“
参阅章节ADC_FLAG 查阅更多该参数允许取值范围
输出参数
返回值
先决条件
被调用函数
ADC_ClearFlag(ADC2, ADC_FLAG_STRT);

1.35 函数ADC_GetITStatus

函数名ADC_GetITStatus
函数原形ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, u16 ADC_IT)
功能描述检查指定的 ADC 中断是否发生
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_IT:将要被检查指定 ADC 中断源
参阅章节ADC_IT 获得该参数可取值得更多细节
输出参数
返回值
先决条件
被调用函数
ITStatus Status; Status = ADC_GetITStatus(ADC1, ADC_IT_AWD);

1.36 函数ADC_ClearITPendingBit

函数名ADC_ClearITPendingBit
函数原形void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, u16 ADC_IT)
功能描述清除 ADCx 的中断待处理位
输入参数 1ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2
输入参数 2ADC_IT:带清除的 ADC 中断待处理位
参阅章节ADC_IT 获得该参数可取值得更多细节
输出参数
返回值
先决条件
被调用函数
ADC_ClearITPendingBit(ADC2, ADC_IT_JEOC);

该文档修改记录:

修改时间修改说明
2024年3月4日第一次发布,介绍了 16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用

总结

以上就是 16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。

### 回答1: stm32f4标准库函数是由ST公司提供的一套软件函数库,针对stm32f4系列单片机开发而设计。该函数库包含了各种控制的初始化函数、IO口控制函数、定时控制函数、中断处理函数等。 其中,控制的初始化函数用于对各个控制进行初始化,以实现控制的各种功能。例如,GPIO_Init函数用于初始化IO口,使用户可以控制IO口的状态。而定时控制函数则可用于实现各种定时功能,如定时中断、计时功能等。 此外,stm32f4标准库函数还提供了各种中断处理函数,用于处理不同的中断事件。例如,GPIO中断处理函数可用于处理IO口的中断事件,而定时中断处理函数则可用于处理定时的中断事件。 总体而言,stm32f4标准库函数stm32f4系列单片机开发中不可或缺的一部分,能够大大简化开发人员的开发工作,提高开发效率。 ### 回答2: STM32F4系列是意法半导体推出的Cortex-M4内核的微控制系列。为方便开发人员利用该系列微控制进行项目开发,意法半导体提供了一份标准库,其中包含了大量的函数库来支持STM32F4系列微控制的各种外设。本文将对STM32F4标准库函数进行说明。 STM32F4标准库函数可以在意法半导体的官方网站上下载。库文件主要包括以下几个部分: 1. CMSIS: Cortex Microcontroller Software Interface Standard (ARM Cortex微控制软件接口标准)。包括系统时钟配置、中断、NVIC(Nested Vectored Interrupt Controller)、Systick(全局定时)等相关的函数库。 2. Device驱动:该部分是针对当前芯片的设备驱动程序,包括GPIO、定时、SPI、I2C、串口等模块。 3. Peripherals驱动:该部分是针对当前芯片的外设驱动,包括ADC(模数转换器)、DMA(直接存储访问)、DAC(数模转换)、SDIO(Secure Digital Input/Output)、USB(通用串行总线)等模块。 4. Middleware:该部分是意法半导体提供的一些中间件,可供用户自行选择。主要包括LWIP(Lightweight IP协议栈)、USB Host/Device库等。 需要注意的是,在使用STM32F4标准库进行开发时,需要对库进行配置,以满足对外设或功能的不同要求。 总的来说,STM32F4标准库函数提供了大量的函数库,可以有效地进行硬件编程,为用户带来方便、高效的微控制开发体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

常驻客栈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值