STM32F407VG (三)ADC

12位ADC是一种逐次逼近型模拟数字转换器。它有多达19个通道,可测量16个外部和2个内部信号源和VBAT通道。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器中。模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。

1.ADC通用初始化参数

/* ADC Common 配置 ----------------------------------------------------------*/

//工作在独立模式或多重模式

ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;

//ADC时钟频率2,4,6,8

ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2;

//配置多ADC模式的直接内存访问模式

ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;

//两个采样之间的延时

ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;

//调用初始化函数

ADC_CommonInit(&ADC_CommonInitStructure);

2,ADC初始化

//ADC精度选择12,10,8,6

ADC_InitStructure.ADC_Resolution = ADC_Resolution_12b;

//是否是扫描转换模式(用于多通道
ENABLE,单通道 DISABLE)

ADC_InitStructure.ADC_ScanConvMode = ENABLE;

//是否是连续转换模式(自己在连续不断地进行转换)

ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;

//是否是外部事件触发转换?

ADC_InitStructure.ADC_ExternalTrigConvEdge = ADC_ExternalTrigConvEdge_None;

//数据对齐方式

ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;

//转换次数

ADC_InitStructure.ADC_NbrOfConversion = 1;

//调用初始化函数

ADC_Init(ADC1, &ADC_InitStructure);

4.规则组通道配置

/* ADC1 regular 16 channel configuration ******************************/

ADC_RegularChannelConfig(ADC1, ADC_Channel_0,  1, ADC_SampleTime_15Cycles);

//温度传感通道16

ADC_TempSensorVrefintCmd(ENABLE);

//电池电压通道18

/* Enable VBAT channel */

ADC_VBATCmd(ENABLE);

5. DMA请求类型

//最后一次转换完成调用DMA

/* Enable DMA request after last transfer (Single-ADC mode) */

ADC_DMARequestAfterLastTransferCmd(ADC1, ENABLE);

6. 使能DMA

/* Enable ADC1 DMA */

ADC_DMACmd(ADC1, ENABLE);

7.使能ADC1

/* Enable ADC1 **************************************************************/

ADC_Cmd(ADC1, ENABLE);

8.开始转换

/* Start ADC1 Software Conversion */

ADC_SoftwareStartConv(ADC1);

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-27 15:16:49

STM32F407VG (三)ADC的相关文章

智能车学习(三)—— ADC学习

一.代码分享: 1.ADC头文件 #ifndef ADC_H_ #define ADC_H_ #include "common.h" typedef enum { // ---------------------------------ADC0------------------------- ADC0_DP0 = 0, // PTE20 ADC0_SE0 = 0, ADC0_DP1 = 1, // PTE16 ADC0_SE1 = 1, ADC0_DP2 = 2, // PTE18

elua学习(三)--定制elua的编译选项

第二篇关于elua的文章讲了,elua的编译和烧写.不过编译选项比较简单,全按照默认的配置,在这篇文章中主要讲怎么定制编译选项.当然还是以stm32f4discovery平台为例子. 关于参考文献 这里首先提参考文献,是因为以下的内容出处比较混乱,提前说一下,省的读者混淆. elua为开源项目,文档还算齐全,但是文档更新的比较混乱:存在多个版本,且有的地方代码和文档不一致. 例如: http://www.eluaproject.net/doc/v0.9/en_index.html http://

ADC类型总结

1.SAR型 (逐次逼近型) 摘要:逐次逼近寄存器型(SAR)模数转换器(ADC)占据着大部分的中等至高分辨率ADC市场.SAR ADC的采样速率最高可达5Msps,分辨率为8位至18位.SAR架构允许高性能.低功耗ADC采用小尺寸封装,适合对尺寸要求严格的系统. 本文说明了SAR ADC的工作原理,采用二进制搜索算法,对输入信号进行转换.本文还给出了SAR ADC的核心架构,即电容式DAC和高速比较器.最后,对SAR架构与流水线.闪速型以及Σ-Δ ADC进行了对比. 引言 逐次逼近寄存器型(S

STM32 ADC基础与多通道采样

12位ADC是一种逐次逼近型模拟数字数字转换器.它有多达18个通道,可测量16个外部和2个内部信号源.ADC的输入时钟不得超过14MHZ,它是由PCLK2经分频产生.如果被ADC转换的模拟电压低于低阀值或高于高阀值,AWD模拟看门狗状态位被设置. ADC通常要与DMA一起使用 这里只是简单的用库配置ADC 不断扫描来实现ADC的应用. 配置DMA: void DMA_Config(void) { DMA_InitTypeDef DMA_InitStructure;//定义DMA初始化结构体 DM

HAL驱动库学习-ADC

如何使用ADC驱动库 1  实现如下两个函数 a: HAL_ADC_MspInit()使能ADC时钟,设置时钟源, 使能ADC Pin,设置为输入模式,可选 DMA,中断 b:HAL_ADC_MspDeInit() 与 HAL_ADC_MspInit()作用相反,用来关闭ADC,可选 DMA,中断 2  配置ADC参数,详细参数描述参考ADC属性定义.通过HAL_ADC_Init()来加载参数 3  配置ADC通道,包括使用的通道,采样时间等 HAL_ADC_ConfigChannel() 4

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

Ⅰ.概述 上一篇文章讲述的内容是:三通道逐次转换(单次.单通道软件触发),也就是说3条通道要三次软件触发才能完成转换,而且是通过软件读取转换数值. 本文讲述三通道DMA连续转换(3通道.软件单次触发),也就是说3条通道只需要一次软件触发就能完成转换,使用DMA保存在数值. 上一篇文章实例是使用间断模式单次触发单条通道采集,本文是使用DMA模式单次触发三条通道采集.使用DMA传输的好处就是效率很高,我们直接读取转换的结果就是了,比如想做的示波器实例就是要求效率很高. 实例实验效果: 本文的实验效果

理解逐次逼近寄存器型ADC:与其它类型ADC的架构对比【转】

转自:http://bbs.dzsc.com/space/viewspacepost.aspx?postid=86760 摘要:逐次逼近寄存器型(SAR)模数转换器(ADC)占据着大部分的中等至高分辨率ADC市场.SAR ADC的采样速率最高可达5Msps,分辨率为8位至18位.SAR架构允许高性能.低功耗ADC采用小尺寸封装,适合对尺寸要求严格的系统. 本文说明了SAR ADC的工作原理,采用二进制搜索算法,对输入信号进行转换.本文还给出了SAR ADC的核心架构,即电容式DAC和高速比较器.

STM32——ADC

STM32--ADC 宗旨:技术的学习是有限的,分享的精神的无限的. 一.ADC指标 有 18 个通道,可测量 16 个外部和 2 个内部信号源.各通道的 A/D 转换可以单次.连续.扫描或间断模式执行 :ADC的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中 :模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高 / 低阈值. 对于 ADC 来说,我们最关注的就是它的分辨率.转换时间.ADC 类型.参考电压范围: (1)分辨率:12 位分辨率.不能直接测量负电压,所以没有符号位,

(转载)高速ADC的关键指标:量化误差、offset/gain error、DNL、INL、ENOB、分辨率、RMS、SFDR、THD、SINAD、dBFS、TWO-TONE IMD

(一)一个基本概念 分贝(dB):按照对数定义的一个幅度单位.对于电压值,dB以20log(VA/VB)给出:对于功率值,以10log(PA/PB)给出.dBc是相对于一个载波信号的dB值:dBm是相对于1mW的dB值.对于dBm而言,规格中的负载电阻必须是已知的(如:1mW提供给50Ω),以确定等效的电压或电流值. (二)静态指标定义 1.量化误差(Quantization Error) 量化误差是基本误差,用简单3bit ADC来说明.输入电压被数字化,以8个离散电平来划分,分别由代码000