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学习

开始时候使用的是stdlib的库,最近发现cube库用的越来越广泛了,遂开始使用cube库来完成ADC的多通道采集实验。 ADC 的driver 在STM32F0XX_HAL_DRIVER当中,有st...
  • liukaiyue
  • liukaiyue
  • 2016年06月24日 09:17
  • 1271

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

此部分配置为本人参考STM32F1及F4网络资源修改版,转载请注明出处。 #include    "adc.h" uint8 sample_finish = 0; int16 adc_dma_t...
  • xuezhimeng2010
  • xuezhimeng2010
  • 2013年11月10日 21:15
  • 15720

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

#include "stm32_lib/inc/stm32f0xx_rcc.h" #include "stm32_lib/inc/stm32f0xx_adc.h" #include "stm32_li...
  • mrlixirong
  • mrlixirong
  • 2015年12月16日 22:32
  • 6372

STM32F030 ADC1的DMA采样问题

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

STM32F030使用ADC功能的例子

  • 2017年09月16日 10:55
  • 265KB
  • 下载

STM32F030 ADC1的DMA采样问题

搞了1天一直ADC没有出来,发现采处理的值一直是固定值.. 去21IC求助贴.[STM32F0] STM32F030 ADC1采样问题请教 等了好久都没有人回复,但有人提醒我说需要等待DMA的数据...
  • u013165704
  • u013165704
  • 2017年04月27日 14:00
  • 627

stm32 AD参考电压

文章原地址:http://yangguangnanhai686.blog.163.com/blog/static/213779100201521781136376/  ,在此表示感谢 最近在...
  • qq_32220231
  • qq_32220231
  • 2016年10月14日 10:50
  • 3419

STM32测量外部电池电压值时参考电压解决方法

STM32的ADC模块是一个12位的逐次逼近型模拟数字转换器。他有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式...
  • u010307522
  • u010307522
  • 2014年12月26日 21:32
  • 7384

STM32 AD参考及参照电压

原文地址:http://yangguangnanhai686.blog.163.com/blog/static/213779100201521781136376/ 最近在进行原理图设计的时候遇...
  • guojunjunjun2006
  • guojunjunjun2006
  • 2017年01月15日 23:50
  • 815

STM32使用ADC+电位器测电压

STM32 adc 电位器
  • Zach_z
  • Zach_z
  • 2017年08月03日 21:23
  • 1476
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:STM32F0xx_ADC采集电压配置详细过程
举报原因:
原因补充:

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