STM32教程:ADC原理及程序(基于STM32F103C8T6最小系统板标准库开发)*详细 ...

打印 上一主题 下一主题

主题 1950|帖子 1950|积分 5850

前言:

本文章介绍了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)
  1. void RCC_ADCCLKConfig(uint32_t RCC_PCLK2);
复制代码
2)ADC的配置库函数,在adc.h

恢复出厂配置、初始化、布局体初始化
  1. void ADC_DeInit(ADC_TypeDef* ADCx);
  2. void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);
  3. void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct);
复制代码
用于给ADC上电
  1. void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState);
复制代码
开启DMA输出信号(如果使用DMA转运数据,就得调用这个函数)
  1. void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState);
复制代码
停止输出控制
  1. void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState);
复制代码
用于控制校准的函数:复位校准、获取复位校准状态、开始校准,获取开始校准状态(在ADC初始化之后,可以依次调用)
  1. void ADC_ResetCalibration(ADC_TypeDef* ADCx);
  2. FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx);
  3. void ADC_StartCalibration(ADC_TypeDef* ADCx);
  4. FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx);
复制代码
ADC软件开始转换控制,这个就是用于软件触发的函数了,调用一下,就可以软件触发转化了
  1. void ADC_SoftwareStartCon
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
继续阅读请点击广告

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表