前言
关于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位数据寄存器中。
配置过程详情
①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 ADC 采集电压
引用地址:
STM32F0xx_ADC采集电压配置详细过程
推荐阅读最新更新时间:2024-03-16 15:37
一种用于CMOS图像传感器集成ADC的性能测试系统
随着CMOS技术的迅猛发展,CMOS图像传感器以其高集成度、低功耗、低成本等优点,已广泛用于超微型数码相机、PC机电脑眼、指纹识别、手机等图像采集的领域。
CMOS图像传感器的工作流程可以简单表述为:外界光信号由像素阵列采集并转换为模拟信号,再通过读出电路传输给A/D转换器,最后交于后续数字电路进行处理。由此可见,A/D转换器在整个CMOS图像传感器中起着“承上启下”的作用,其性能指标直接影响着整个系统的优劣,从而使得ADC的性能测试变得十分重要。
目前业界已经存在一些通用的ADC测试方法,例如针对静态指标测试的直方图法,针对动态指标测试的快速傅式变换法,以及专门针对ENOB的正弦波适应法等,但是还没有单一的测试方法能够有
[嵌入式]
STC12C5A60S2 ADC查询方式
/*------------------------------------------------------------------*/ /* --- STC MCU Limited ---------------------------------------------*/ /* --- STC12C5Axx Series MCU A/D Conversion Demo -------------------*/ /* --- Web: www.STCMCU.com -----------------------------------------*/ /* If you want to use the program o
[单片机]
第30章 ADC—电压采集—零死角玩转STM32-F429系列
本章参考资料:《STM32F4xx中文参考手册》ADC章节。 学习本章时,配合《STM32F4xx中文参考手册》ADC章节一起阅读,效果会更佳,特别是涉及到寄存器说明的部分。 30.1 ADC简介 STM32F429IGT6有3个ADC,每个ADC有12位、10位、8位和6位可选,每个ADC有16个外部通道。另外还有两个内部ADC源和VBAT通道挂在ADC1上。ADC具有独立模式、双重模式和三重模式,对于不同AD转换要求几乎都有合适的模式可选。ADC功能非常强大,具体的我们在功能框图中分析每个部分的功能。 30.2 ADC功能框图剖析 图 01 单个ADC功能框图 掌握了ADC的功能框图,就可以对ADC有一个整
[单片机]
新推出的同步SAR模数转换器的片内校准优势
The On-Chip Calibration Benefits of New Simultaneous SAR Analog-to-Digital Converters 新推出的同步SAR模数转换器的片内校准优势 摘要 本文评估在电阻模数转换器(ADC)前面的外部电阻的影响。这些系列的同步采样ADC包括一个高输入阻抗电阻可编程增益放大器(PGA),用于驱动ADC和缩放输入信号,允许直接连接传感器。但是,有几个原因导致在设计期间,我们最终会在模拟输入前面增加外部电阻。以下部分从理论上解释预期的增益误差,该误差与电阻大小呈函数关系,且介绍最小化这些误差的几种方式。本文还研究电阻公差和不同的校准选项对ADC输入阻抗
[模拟电子]
stm32 ADC 使用DMA双缓存
半缓存中断 https://www.bilibili.com/read/cv5242250/
[单片机]
基于单片机+ADC0809的数字电流表仿真+源程序+设计报告
仿真原理图如下 下面是设计报告: 目录 摘 要2 关键词2 1 概述3 1.1设计意义 1.2系统主要功能 2 硬件电路设计方案及描述3 2.1 设计方案 2.2 主要元器件的介绍 2. 3控制电路模块 2.4 元件清单 3数字式电流表的软件设计16 3.1系统程序设计总方案 3.2系统子程序设计 4数字式电流表的调试 4.1软件调试 4.2显示结果及误差分析 5总结 附录1.电路原理图及仿真图 附录2. 程序代码 参考文献 基于单片机的简易数字电流表设计 摘要 数字电流表的诞生打破了传统电子测量仪器的模式和格局。它显示清晰直观、读数准确,采用了先进的数显技术,大大地减少了因人为因素所造成
[单片机]
通过数学计算了解交错ADC的杂散
时间交错ADC时存在的许多不匹配现象。在这些不匹配显像中有一个更为明显的问题:这些不匹配所产生的杂散有多大? 现在,在知道了各种不匹配会引起交错杂散,并且知道杂散在哪里的情况下,工程师该如何知道杂散有多大呢?
首先,先从失调不匹配杂散开始。 两个ADC之间的失调不匹配会在fs/2处产生杂散。 如何知道该杂散有多大呢? 请看看下面的公式1,其中OffsetMismatch表示码数。
公式1
现在,考虑一个双通道器件的两个14位ADC之间的典型失调不匹配。 通常,其标称值约为满量程的0.5%。 这意味着,码数为214的0.5%,即81.92个码。 将该值代入公式1,得到下式:
[嵌入式]
温度测量系统对ADC的要求
为具体应用选择适当的温度传感器取决于待测温度范围和所需的精度。系统精度取决于温度传感器的精度和对传感器的输出数字化的模数转换器( ADC )的性能。多数情况下,由于传感器信号非常微弱,因此需要高分辨率ADC。ΣΔ ADC具有高分辨率,并且这种ADC通常包含温度测量系统所需的内置电路,例如激励电流源。本文主要介绍可以利用的温度传感器 和连接传感器与ADC所需的电路,以及对ADC的性能要求。 热电偶 热电偶由两种不同类型的金属组成。当温度高于零摄氏度时,在两种金属的连接处会产生温差电压,电压大小取决于温度相对于零摄氏度的偏差。热电偶具有体积小、工作温度范围宽等优点,非常适合恶劣环境中的极高温度(高达2300℃
[测试测量]