16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用
1 ADC 固件库函数预览
序号 | 函数名 | 描述 |
---|
1 | ADC_DeInit | 将外设 ADCx 的全部寄存器重设为缺省值 |
2 | ADC_Init | 根据 ADC_InitStruct 中指定的参数初始化外设 ADCx 的寄存器 |
3 | ADC_StructInit | 把 ADC_InitStruct 中的每一个参数按缺省值填入 |
4 | ADC_Cmd | 使能或者失能指定的 ADC |
5 | ADC_DMACmd | 使能或者失能指定的 ADC 的 DMA 请求 |
6 | ADC_ITConfig | 使能或者失能指定的 ADC 的中断 |
7 | ADC_ResetCalibration | 重置指定的 ADC 的校准寄存器 |
8 | ADC_GetResetCalibrationStatus | 获取 ADC 重置校准寄存器的状态 |
9 | ADC_StartCalibration | 开始指定 ADC 的校准程序 |
10 | ADC_GetCalibrationStatus | 获取指定 ADC 的校准状态 |
11 | ADC_SoftwareStartConvCmd | 使能或者失能指定的 ADC 的软件转换启动功能 |
12 | ADC_GetSoftwareStartConvStatus | 获取 ADC 软件转换启动状态 |
13 | ADC_DiscModeChannelCountConfig | 对 ADC 规则组通道配置间断模式 |
14 | ADC_DiscModeCmd | 使能或者失能指定的 ADC 规则组通道的间断模式 |
15 | ADC_RegularChannelConfig | 设置指定 ADC 的规则组通道,设置它们的转化顺序和采样时间 |
16 | ADC_ExternalTrigConvConfig | 使能或者失能 ADCx 的经外部触发启动转换功能 |
17 | ADC_GetConversionValue | 返回最近一次 ADCx 规则组的转换结果 |
18 | ADC_GetDuelModeConversionValue | 返回最近一次双 ADC 模式下的转换结果 |
19 | ADC_AutoInjectedConvCmd | 使能或者失能指定 ADC 在规则组转化后自动开始注入组转换 |
20 | ADC_InjectedDiscModeCmd | 使能或者失能指定 ADC 的注入组间断模式 |
21 | ADC_ExternalTrigInjectedConvConfig | 配置 ADCx 的外部触发启动注入组转换功能 |
22 | ADC_ExternalTrigInjectedConvCmd | 使能或者失能 ADCx 的经外部触发启动注入组转换功能 |
23 | ADC_SoftwareStartinjectedConvCmd | 使能或者失能 ADCx 软件启动注入组转换功能 |
24 | ADC_GetsoftwareStartinjectedConvStatus | 获取指定 ADC 的软件启动注入组转换状态 |
25 | ADC_InjectedChannleConfig | 设置指定 ADC 的注入组通道,设置它们的转换顺序和采样时间 |
26 | ADC_InjectedSequencerLengthConfig | 设置注入组通道的转换序列长度 |
27 | ADC_SetinjectedOffset | 设置注入组通道的转换偏移值 |
28 | ADC_GetInjectedConversionValue | 返回 ADC 指定注入通道的转换结果 |
29 | ADC_AnalogWatchdogCmd | 使能或者失能指定单个/全体,规则/注入组通道上的模拟看门狗 |
30 | ADC_AnalogWatchdongThresholdsConfig | 设置模拟看门狗的高/低阈值 |
31 | ADC_AnalogWatchdongSingleChannelConfig | 对单个 ADC 通道设置模拟看门狗 |
32 | ADC_TampSensorVrefintCmd | 使能或者失能温度传感器和内部参考电压通道 |
33 | ADC_GetFlagStatus | 检查制定 ADC 标志位置 1 与否 |
34 | ADC_ClearFlag | 清除 ADCx 的待处理标志位 |
35 | ADC_GetITStatus | 检查指定的 ADC 中断是否发生 |
36 | ADC_ClearITPendingBit | 清除 ADCx 的中断待处理位 |
1.1 函数 ADC_DeInit
函数名 | ADC_DeInit |
---|
函数原形 | void ADC_DeInit(ADC_TypeDef* ADCx) |
功能描述 | 将外设 ADCx 的全部寄存器重设为缺省值 |
输入参数 1 | ADCx: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 的寄存器 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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_Independent | ADC1 和 ADC2 工作在独立模式 |
ADC_Mode_RegInjecSimult | ADC1 和 ADC2 工作在同步规则和同步注入模式 |
ADC_Mode_RegSimult_AlterTrig | ADC1 和 ADC2 工作在同步规则模式和交替触发模式 |
ADC_Mode_InjecSimult_FastInterl | ADC1 和 ADC2 工作在同步规则模式和快速交替模式 |
ADC_Mode_InjecSimult_SlowInterl | ADC1 和 ADC2 工作在同步注入模式和慢速交替模式 |
ADC_Mode_InjecSimult | ADC1 和 ADC2 工作在同步注入模式 |
ADC_Mode_RegSimult | ADC1 和 ADC2 工作在同步规则模式 |
ADC_Mode_FastInterl | ADC1 和 ADC2 工作在快速交替模式 |
ADC_Mode_SlowInterl | ADC1 和 ADC2 工作在慢速交替模式 |
ADC_Mode_AlterTrig | ADC1 和 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_Right | ADC 数据右对齐 |
ADC_DataAlign_Left | ADC 数据左对齐 |
例:
/* 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_Mode | ADC_Mode_Independent |
ADC_ScanConvMode | DISABLE |
ADC_ContinuousConvMode | DISABLE |
ADC_ExternalTrigConv | ADC_ExternalTrigConv_T1_CC1 |
ADC_DataAlign | ADC_DataAlign_Right |
ADC_NbrOfChannel | 1 |
例:
/* 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 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:外设 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 请求 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState: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 的中断 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_IT:将要被使能或者失能的指定 ADC 中断源,参阅章节 ADC_IT 获得该参数可取值的更多细节 |
输入参数 3 | NewState:指定 ADC 中断的新状态,可取值: ENABLE 或者 DISABLE |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
ADC_IT 可以用来使能或者失能 ADC 中断。
ADC_IT | 描述 |
---|
ADC_IT_EOC | EOC 中断屏蔽 |
ADC_IT_AWD | AWDOG 中断屏蔽 |
ADC_IT_JEOC | JEOC 中断屏蔽 |
例:
/* 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 的软件转换启动功能 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:指定 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 规则组通道配置间断模式 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | Number:间断模式规则组通道计数器的值。这个值得范围为 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 规则组通道的间断模式 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState: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 的规则组通道,设置它们的转化顺序和采样时间 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_Channel:被设置的 ADC 通道。参阅章节 ADC_Channel 查阅更多该参数允许取值范围 |
输入参数 3 | Rank:规则组采样顺序。取值范围 1 到 16。 |
输入参数 4 | ADC_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 的经外部触发启动转换功能 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:指定 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 在规则组转化后自动开始注入组转换 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:指定 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 的注入组间断模式 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState: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 的外部触发启动注入组转换功能 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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 的经外部触发启动注入组转换功能 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:指定 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 软件启动注入组转换功能 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | NewState:指定 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 的注入组通道,设置它们的转化顺序和采样时间 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_Channel:被设置的 ADC 通道(参阅章节 ADC_Channel 查阅更多该参数允许取值范围) |
输入参数 3 | Rank:规则组采样顺序。取值范围 1 到 4。 |
输入参数 4 | ADC_SampleTime:指定 ADC 通道的采样时间值(参阅章节 ADC_SampleTime 查阅更多该参数允许取值范围) |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 之前必须调用函数 ADC_InjectedSequencerLengthConfig 来确定注入转换通道的数目。特别是在通道数目小于 4 的情况下,来正确配置每个注入通道的转化顺序。 |
被调用函数 | 无 |
ADC_Channel | 参数 ADC_Channel 指定了需设置的 ADC 通道。Table 26. 列举了 ADC_Channel 可取的值。 |
ADC_SampleTime | ADC_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) |
功能描述 | 设置注入组通道的转换序列长度 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | Length:序列长度(这个参数取值范围 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) |
功能描述 | 设置注入组通道的转换偏移值 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_InjectedChannel:被设置转换偏移值的 ADC 注入通道(参阅章节 ADC_InjectedChannel 查阅更多该参数允许取值范围) |
输入参数 3 | Offset: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 指定注入通道的转换结果 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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) |
功能描述 | 使能或者失能指定单个/全体,规则/注入组通道上的模拟看门狗 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_AnalogWatchdog:ADC 模拟看门狗设置 |
参阅章节 | ADC_AnalogWatchdog 查阅更多该参数允许取值范围 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
ADC_AnalogWatchdog | ADC_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) |
功能描述 | 设置模拟看门狗的高/低阈值 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | HighThreshold:模拟看门狗的高阈值 |
输入参数 3 | LowThreshold:模拟看门狗的低阈值 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例 | ADC_AnalogWatchdogThresholdsConfig(ADC1, 0x400, 0x100); |
1.31 函数ADC_AnalogWatchdongSingleChannelConfig
函数名 | ADC_AnalogWatchdongSingleChannelConfig |
---|
函数原形 | void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, u8 ADC_Channel) |
功能描述 | 对单个 ADC 通道设置模拟看门狗 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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 与否 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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 的待处理标志位 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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 中断是否发生 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_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 的中断待处理位 |
输入参数 1 | ADCx:x 可以是 1 或者 2 来选择 ADC 外设 ADC1 或 ADC2 |
输入参数 2 | ADC_IT:带清除的 ADC 中断待处理位 |
参阅章节 | ADC_IT 获得该参数可取值得更多细节 |
输出参数 | 无 |
返回值 | 无 |
先决条件 | 无 |
被调用函数 | 无 |
例 | ADC_ClearITPendingBit(ADC2, ADC_IT_JEOC); |
该文档修改记录:
修改时间 | 修改说明 |
---|
2024年3月4日 | 第一次发布,介绍了 16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用 |
总结
以上就是 16 STM32标准库函数 之 模拟/数字转换器(ADC) 所有函数的介绍及使用的内容。
有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。
创作不容,如果文档对您有帮助,记得给个赞。