打印
[STM32F0]

【转】STM32F0xx_ADC采集电压配置详细过程

[复制链接]
1316|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
风萧寒|  楼主 | 2016-12-10 21:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言
关于ADC这一块的功能基本上也算是CortexM芯片的标配了。ST的每一块芯片都有这个功能,只是说因型号不同,通道数、位数等有所不同。STM8的芯片大多数都是10的,也就是说分辨率可达到:参考电压*(1/1024);STM32大多数都是12位的,也有少部分是16位的(F373)。平常采集一般的电压值,10位数都够我们使用了,除非使用在非常精密,或者说要求比较高的场合。
F0系列的芯片和F1系列的芯片差不多相似,但是F0没有ADC2、ADC3这么一说,只有ADC1,这里在编程的时候(特别是想把代码从F1移植到F0上的人要注意)。

下载
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位数据寄存器中。


沙发
风萧寒|  楼主 | 2016-12-10 21:45 | 只看该作者
配置过程详情
①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基本延时配置详细过程”修改而来,以上实例总结仅供参考,若有不对之处,敬请谅解。


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

使用特权

评论回复
板凳
mintspring| | 2016-12-10 21:48 | 只看该作者
ADC这一块的功能基本上也算是CortexM芯片的标配

使用特权

评论回复
地板
fplman| | 2016-12-16 16:37 | 只看该作者
楼主的360云盘不能下载啊?您有百度网盘下载地址吗?

使用特权

评论回复
5
bjbjlhjlhj| | 2016-12-27 11:01 | 只看该作者
恩恩,楼主能不能在共享一分关于AD的程序啊!麻烦了,谢谢!下载不上上面的。

使用特权

评论回复
6
huangcunxiake| | 2016-12-27 17:09 | 只看该作者
不错,讲的很清楚啊,再做的时候就明白整个过程了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

68

主题

134

帖子

3

粉丝