前言:
本文章介绍了STM32微控制器的ADC外设,介绍了ADC的底层原理以及根本布局,介绍了ADC有关的标准库函数,以及怎样编写代码实现ADC对电位器电压的读取。
<hr> 可以根据根本布局图来编写代码
大要流程:
1、开启RCC时钟(包括ADC和GPIO的时钟,别的ADCCLK的分频器,也需要配置)
2、配置GPIO(把需要用的GPIO配置成模拟输入模式)
3、配置多路开关(把左边的通道接入到右边的规则组列表里)
4、配置ADC转换器(用库函数布局体)
5、如果需要模拟看门狗和停止,也可以配置
6、开关控制,调用ADC_Cmd函数,开启ADC(如果需要,还可以开启校准)
<hr> ADC相关库函数介绍
1)ADCCLK的配置库函数,在rcc.h
这个函数是用来配置ADCCLK分频器的(它可以对APB2的72MHz时钟选择2、4、6、8分频,输入到ADCCLK)
- void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
复制代码 2)ADC的配置库函数,在adc.h
恢复出厂配置、初始化、布局体初始化
- void ADC_DeInit(ADC_TypeDef* ADCx);
- void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
- void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);
复制代码 用于给ADC上电
- void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);
复制代码 开启DMA输出信号(如果使用DMA转运数据,就得调用这个函数)
- void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);
复制代码 停止输出控制
- void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);
复制代码 用于控制校准的函数:复位校准、获取复位校准状态、开始校准,获取开始校准状态(在ADC初始化之后,可以依次调用)
- void ADC_ResetCalibration(ADC_TypeDef* ADCx);
- FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);
- void ADC_StartCalibration(ADC_TypeDef* ADCx);
- FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);
复制代码 ADC软件开始转换控制,这个就是用于软件触发的函数了,调用一下,就可以软件触发转化了
- void ADC_SoftwareStartCon
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
|