ADC库函数

本文详细介绍了STM32微控制器中ADC模块的功能及其配置方法,包括初始化、启动转换、配置中断等操作,并提供了丰富的示例说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.void ADC_DeInit(ADC_TypeDef* ADCx)

功能:初始化ADCx外围寄存器为默认

注释:调用了RCC_APB2PeriphResetCmd函数进行寄存器复位

例如:ADC_DeInit(ADC1);

 

2.void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)

功能:根据ADC_InitStruct中指定的参数初始化ADCx外设

注释:ADC_Init(ADC1 , &ADC_InitStructure);

 

3.void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)

功能:用默认值填充每个ADC_InitStruct成员

注释:只填充结构体,不写入寄存器

例如:ADC_StructInit(&ADC_InitStructure);

 

4.void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:使能或者失能指定的ADC外设

注释:如果在这个寄存器中与ADON一起还有其他位被改变,则转换不被触发。这是为了防止触发错误的转换;

           转换器上电至转换开始有一个延迟tSTAB

例如:ADC_Cmd(ADC1 , ENABLE);

 

5.void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:使能或者失能指定的ADC外设的DMA请求

注释:只有ADC1和ADC3能产生DMA请求

例如:ADC_DMACmd(ADC1 , ENABLE);

 

6.void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState)

功能:配置指定的ADC中断

例如:ADC_ITConfig(ADC1 , ADC_IT_EOC);

 

7.void ADC_ResetCalibration(ADC_TypeDef* ADCx)

功能:复位选中的ADC校准寄存器

注释:如果正在进行转换时设置RSTCAL,清除校准寄存器需要额外的周期

例如:ADC_ResetCalibration(ADC1);

 

8.FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)

功能:获取选定的ADC复位校准寄存器状态

注释:选定的ADC复位校准寄存器是否初始化成功

例如:status = ADC_GetResetCalibrationStatus(ADC1);

 

9.void ADC_StartCalibration(ADC_TypeDef* ADCx)

功能:启动选定的ADC校准过程

例如:ADC_StartCalibration(ADC1);

 

10.FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)

功能:获取选定的ADC校准状态

注释:检查校准是否完成

例如:status = ADC_GetCalibrationStatus(ADC1);

 

11.void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:使能或者失能选定的ADC软件启动转换

注释:使用外部事件启动转换,之后软件设置启动转换(先开启,后开始)

例如:ADC_SoftwareStartConvCmd(ADC1 , ENABLE);

 

12.FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)

功能:获取选定的ADC软件开始转换状态

注释:检查转换是否开始

例如:status = ADC_GetSoftwareStartConvStatus(ADC1);

 

13.void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number)

功能:为选定的ADC规则通道配置间断模式通道数目

注释:这些位定义在间断模式下,受到外部触发后转换规则通道的数目

例如:ADC_DiscModeChannelCountConfig(ADC1 , 8);

 

14.void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:为指定的ADC使能或者失能规则通道上的间断模式

注释:用于开启或关闭规则通道组上的间断模式

例如:ADC_DiscModeCmd(ADC1 , ENABLE);

 

15.void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime)

功能:为选定的ADCx规则通道配置它在定序器中的相应排名和它的采样时间

例如:ADC_RegularChannelConfig(ADC1 , ADC_Channel_0 , 1 , ADC_SampleTime_1Cycles5);

 

16.void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:通过外部触发器使能或者失能ADCx转换

注释:用于开启或禁止可以启动规则通道组转换的外部触发事件

例如:ADC_ExternalTrigConvCmd(ADC1 , ENABLE);

 

17.uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx)

功能:返回规则通道的最后一个ADCx转换结果数据

例如:value = ADC_GetConversionValue(ADC1);

 

18.uint32_t ADC_GetDualModeConversionValue(void)

功能:在双模式下,返回最后一个ADC1和ADC2转换结果数据

例如:value = ADC_GetDualModeConversionValue();

 

19.void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:用于使能或失能规则通道组转换结束后自动的注入通道组转换

注释:开启或关闭自动的注入通道组转换

例如:ADC_AutoInjectedConvCmd(ADC1 , ENABLE);

 

20.void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:为指定的ADC使能或失能注入通道的间断模式

注释:注入通道组上启用还是禁用间断模式

例如:ADC_InjectedDiscModeCmd(ADC1 , ENABLE);

 

21.void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_ExternalTrigInjecConv)

功能:为注入通道转换配置ADCx外部触发器

注释:选择用于启动注入通道组转换的外部事件

例如:ADC_ExternalTrigInjectedConvConfig(ADC1 , ADC_ExternalTrigInjecConv_T1_TRGO);

 

22.void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:通过外部触发器使能或者失能ADCx注入通道转换

注释:开启或禁止可以启动注入通道组转换的外部触发事件

例如:ADC_ExternalTrigInjectedConvCmd(ADC1 , ENABLE);

 

23.void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)

功能:使能或失能注入通道转换的选定ADC的启动

注释:使用外部事件启动注入通道组转换,之后开始转换注入通道(先开启,后开始)

例如:ADC_SoftwareStartInjectedConvCmd(ADC1 , ENABLE);

 

24.FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx)

功能:获取选定的ADC软件启动注入转换状态

注释:检查转换是否开始

例如:status = ADC_GetSoftwareStartInjectedConvCmdStatus(ADC1);

 

25.void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, uint8_t Rank, uint8_t ADC_SampleTime)

功能:为选定的ADC注入通道配置它在定序器中的对应排名和采样时间

例如:ADC_InjectedChannelConfig(ADC1 , ADC_Channel_0 , 1 , ADC_SampleTime_1Cycles5);

 

26.void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length)

功能:配置注入通道的序列长度

注释:定义在注入通道转换序列中的通道数目

例如:ADC_InjectedSequencerLengthConfig(ADC1 , 4);

 

27.void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel, uint16_t Offset)

功能:设置注入通道转换值偏移量

注释:选择ADC注入通道的偏移值这个参数必须是一个12位的值

例如:ADC_SetInjectedOffset(ADC1 , ADC_InjectedChannel_1 , 0x01);

 

28.uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChannel)

功能:返回ADC注入通道转换结果

例如:value = ADC_GetInjectedConversionValue(ADC1 , ADC_InjectedChannel_1);

 

29.void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog)

功能:在单个/所有常规或注入通道上使能或者失能模拟看门狗

例如:ADC_AnalogWatchdogCmd(ADC1 , ADC_AnalogWatchdog_None);

 

30.void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t HighThreshold, uint16_t LowThreshold)

功能:配置模拟看门狗的高阈值和低阈值

例如:ADC_AnalogWatchdogThresholdsConfig(ADC1,2482,1861);

 

31.void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel)

功能:配置模拟看门狗保护的输入通道

例如:ADC_AnalogWatchdogSingleChannelConfig(ADC1 , ADC_Channel_0);

 

32.void ADC_TempSensorVrefintCmd(FunctionalState NewState)

功能:使能或者失能温度传感器和内部参考电压通道

注释:开启或禁止温度传感器和内部参考电压通道

例如:ADC_TempSensorVrefintCmd(ENABLE);

 

33.FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)

功能:检查指定的ADC标志是否设置

注释:开始位,结束位,看门狗位

例如:status = ADC_GetFlagStatus(ADC1 , ADC_FLAG_AWD);

 

34.void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)

功能:清除ADCx的挂起标志

例如:ADC_ClearFlag(ADC1 , ADC_FLAG_AWD);

 

35.ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT)

功能:检查指定的ADC中断是否发生

例如:status = ADC_GetITStatus(ADC1 , ADC_IT_EOC);

 

36.void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT)

功能:清除ADCx的中断挂起位

例如:ADC_ClearITPendingBit(ADC1 , ADC_IT_EOC);

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值