STM32F0xx_ADC采集电压配置详细过程

原创 2016年05月31日 22:24:36

前言

关于ADC这一块的功能基本上也算是CortexM芯片的标配了。ST的每一块芯片都有这个功能,只是说因型号不同,通道数、位数等有所不同。STM8的芯片大多数都是10的,也就是说分辨率可达到:参考电压*(1/1024);STM32大多数都是12位的,也有少部分是16位的(F373)。平常采集一般的电压值,10位数都够我们使用了,除非使用在非常精密,或者说要求比较高的场合。

F0系列的芯片和F1系列的芯片差不多相似,但是F0没有ADC2、ADC3这么一说,只有ADC1,这里在编程的时候(特别是想把代码从F1移植到F0上的人要注意)。

 

本着免费分享的原则,如果你觉得分享内容对你有用,请关注微信公众号“EmbeddDeveloper”还有更多精彩内容等着你。

 

下载

ST标准外设库和参考手册、数据手册等都可以在ST官网下载,你也可以到我的360云盘下载。关于F0系列芯片的参考手册有多个版本(针对F0不同芯片),但有一个通用版本,就是“STM32F0x128参考手册V8(英文)2015-07”建议参考该手册,以后如果你换用一种型号芯片也方便了解。

 

今天的软件工程下载地址(360云盘):

https://yunpan.cn/cSULmkr3vBQUj  访问密码 14c7

 

STM32F0xx的资料可以在我360云盘下载:

https://yunpan.cn/cS2PVuHn6X2Bj  访问密码 8c37

 

准备工作

今天总结的软件工程是基于“TIM基本延时配置详细过程”修改而来,因此需要将该软件工程下载准备好。打开软件工程,新建源程序文件(adc.c 和 adc.h),在工程中添加新建的源程序文件adc.c和使用到标准外设库stm32f0xx_adc.c。添加的源代码响应的源文件代码就OK了。

 

数据传输原理

ADC模块是一种12位的逐次逼近型模拟数字转换器。它有多达19个通道,可测量16个外部和3个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。


 

 

配置过程详情

①RCC时钟


该函数位于bsp.c文件下面;

我个人习惯第一步配置时钟,ST官方提供的例程也是把配置时钟放在前面。关于RCC时钟的配置比较重要,有好几次我就是由于忘记配置相应RCC时钟,让我找了很久的问题,最后才发现是RCC时钟没有配置。

注意:

外设时钟不要随便添加,比如:RCC_APB1外设不要配置在RCC_APB2时钟里面【如:RCC_APB2PeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);这样能编译过,但是错误的

我每次都提醒RCC时钟,是因为很多人就是因为时钟而导致软件运行有问题,所以,提醒更多人要注意配置RCC.

 

②ADC引脚配置


该函数位于adc.c文件下面;

重点注意:

引脚配置要和AD通道对应才行(请看数据手册中的引脚说明)。

 

③ADC配置


该函数位于adc.c文件下面;

分辨率和对齐方式决定你的计算方式、通道与上面的引脚配置需对应。

 

④ADC采集电压值


该函数位于adc.c文件下面;

调用这个接口就可以采集电压值。这里采样8次(根据自己情况可以选择平均多次),算平均,最后得出电压值(1000倍值)。1000倍数值是不想有小数点,方便打印输出。

 

说明

STM32F0的芯片软件兼容性很好,可以适用于F0其他很多型号的芯片(具体请看手册、或者亲自测试)。

今天的工程是基于工程“STM32F0xx_TIM基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。

 

 

最后

如果你喜欢我分享的内容,你又想了解更多相关内容,请关注文章开头的微信公众号,新内容持续更新中,后期将会有更多精彩内容出现。

 

阅读原文


版权声明:本文为博主strongerHuang原创文章,转载请标明:来自http://blog.csdn.net/ybhuangfugui

相关文章推荐

STM32F0 定时器触发ADC,多通道采样、DMA传输数据的配置

此部分配置为本人参考STM32F1及F4网络资源修改版,转载请注明出处。 #include    "adc.h" uint8 sample_finish = 0; int16 adc_dma_t...

谈谈STM32F051的 ADC DMA用法

首先谈谈引脚  STM32F051R8T6 多达16个  12bit外部AD通道。同时还有片内温度。电压基准,VBAT三个通道。对一般的AD使用来说是完全够用了。16个AD通道分别分布在 AD0  ...

STM32F0 ADC学习

开始时候使用的是stdlib的库,最近发现cube库用的越来越广泛了,遂开始使用cube库来完成ADC的多通道采集实验。 ADC 的driver 在STM32F0XX_HAL_DRIVER当中,有st...

STM32之ADC配置

对于STM32,在使用ADC的时候需要配置几个参数。 (1)   第一个参数是ADC_Mode,这里设置为独立模式: ADC_InitStructure.ADC_Mode = ADC_Mode_I...

今天学习一下STM32的ADC(模拟/数字转化器)——IO口配置

首先我们应将PC0设置成模拟输入: #include "adc.h" /*ADC1_DR_Address需要自己配置,即为存放转换结果的寄存器,他的作用就是告诉DMA取数就到ADC1_DR_Addre...

STM32F10x_ADC三通道DMA连续转换(3通道、软件单次触发)

Ⅰ、概述 上一篇文章讲述的内容是:三通道逐次转换(单次、单通道软件触发),也就是说3条通道要三次软件触发才能完成转换,而且是通过软件读取转换数值。 本文讲述三通道DMA连续转换(3通道、软件单次触发)...

STM32入门学习之ADC(STM32F030F4P6基于CooCox IDE)

#include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_adc.h" #include "stm32_li...

STM32F030 ADC1的DMA采样问题

搞了1天一直ADC没有出来,发现采处理的值一直是固定值.. 去21IC求助贴.[STM32F0] STM32F030 ADC1采样问题请教 等了好久都没有人回复,但有人提醒我说需要等待DMA的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

STM32F030 ADC1的DMA采样问题

搞了1天一直ADC没有出来,发现采处理的值一直是固定值.. 去21IC求助贴.[STM32F0] STM32F030 ADC1采样问题请教 等了好久都没有人回复,但有人提醒我说需要等待DMA的数据...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32F0xx_ADC采集电压配置详细过程
举报原因:
原因补充:

(最多只允许输入30个字)