LPC1768菜鸟学习之ADC

发布者:快乐航程最新更新时间:2018-11-30 来源: eefocus关键字:LPC1768  ADC 手机看文章 扫描二维码
随时随地手机看文章

要使用ADC功能,就要在PCONP选择选PCADC,在PINSEL选择对应管脚为ADC管脚。


   LPC1768有8个引脚复用为A/D输入脚。


   12位主次逼近式模数转换器; 


   测量范围:0~VREFP(通常为3V;不超过VDDA);


要使用的寄存器:


   A/D控制寄存器 ADCR


   A/D全局数据寄存器 ADGDR  用来存储最近一次A/D转换的结果,各个通道都有自己的数据寄存器ADDR0 ~ADDR7


以下面的实例来说明。


LPC1768板子上有个电位器与AD0.5相连接,调节电位器就可以改变AD0.,5的电压。


初始化


void ADC_Init (void) {


 


  LPC_PINCON->PINSEL3 &= ~(3UL<<30);               /* P1.31 is GPIO */


  LPC_PINCON->PINSEL3 |=  (3UL<<30);               /* P1.31 is AD0.5 */


 


  LPC_SC->PCONP       |=  (1<<12);               /* Enable power to ADC block */


 


  LPC_ADC->ADCR        =  (1<< 5) |              /* select AD0.5 pin */


                          (4<< 8) |              /* ADC clock is 24MHz/5 */   


                                                //CLKDIV=4


                          (1<<21);               /* enable ADC */ 


}


ADC时钟不能超过13MHz,,ADC CLK=PCLK/(CLKDIV+1).


LPC_ADC->ADCR |=  (1<<24);                     /* start conversion */


或者在之前可以加一个 LPC_ADC->ADCR &= ~(7<<24);        /* stop conversion  */ 来排除干扰之类的~~~,这个其实就是结束A/D转换的代码。


   转换出来的数据可以再两个寄存器里看到,ADGDR和ADDR5,这里我们用的是ADGDR.


   对了,还要用(LPC_ADC->ADGDR & (1UL<<31))==1来判定是否转换完成才能得到转换后的数据,


            data=( LPC_ADC->ADGDR >> 4) &0xFFF;


因为ADGDR的31位,A/D转换结束置1,当数据被读出就自动清0了。


 ADC_Data = (ADC_Data * 3300)/4096;


这句话的意思就是在参考电压3300mv下得到的电压,4960=,12位AD的意思,不过看网上说应该4059好些,理由摘抄如下:


ADC采集出来的数据,是0~4095,不会出现4096这个值,如果你4096等分,那就不能得到3.3V了。


会比3.3V少那么一点点。


按4095等分,那么可以从0~3.3V,线性变化,根据ADC转换结果,测量电压:最低是0V,最高是3.3V


好了,简单的A/D采样就到这。



关键字:LPC1768  ADC 引用地址:LPC1768菜鸟学习之ADC

上一篇:STM32填坑:时钟使能必须在外设初始化之前
下一篇:LPC1788 SystemInit函数分析

推荐阅读最新更新时间:2024-03-16 16:18

STM32 ADC详解
01、ADC简介 ADC是Analog-to-DigitalConverter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 从STM32F207的数据手册中下图看到,STM32F207VC有3个精度为12bit的ADC控制器,有16个外部通道,而144脚的STM32F207Zx和176脚的STM32F207Ix因为带PF脚,所以多8个通道,为24个外部通道。各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。 02、STM32的ADC外设 上面说
[单片机]
STM32 <font color='red'>ADC</font>详解
基于ISA总线的ADC板卡设计
摘要:以AD574为A/D转换核心,研制了基于ISA总线的32通道12位ADC板卡,并给出硬件电路和软件流程。 关键词:AD574 A/D转换 ISA总线 1 引言 模数转换器是工业测量和控制系统中数据采集子系统的重要部件,它是测控现场的模拟信号源与数字计算机之间的接口,其任务是把现场中连续变化的被测信号转换成离散信号,再由工控计算机作进一步的数据处理。这就要求系统将所采集的模拟数据信号尽可能真实地、不失真地显示给控制人员,为此,笔者研制了基于ISA总线的A/D转换板卡。该板卡以AD574为A/D转换核心,在ISA总线技术的基础上,利用较少的外围元件来实现多通道、高精度的A/D转换。该板卡具有32路单端信号输入,电压范围为0
[应用]
STM32驱动ADC0809详解
开发环境与工具 Keil 5主芯片为 STM32F103RET6下载工具为 JLINKXCOM V2.0 串口助手PC 为 Win10 准备工作 购买 ADC0809 芯片 习惯购买元器件多买一个,方便替换验证。 因为做过一次验证之后,这个板子就没有用了,所以购买 DIP-28 宽体底座,让底座焊板子上,芯片插底座上,方便芯片的二次使用,节约成本。 PCB 打板 下图这种模块: STM32 要想驱动 ADC0809 这个芯片需要很多个引脚(不考虑复用的话,需要 16 个引脚),如果这些引脚都用杜邦线连接的话会很乱,如果哪个杜邦线再接触不好,那么对于程序的调试很不方便,所以我就采用核心板+底板的形式来实现,避
[单片机]
STM32中对ADC1_Config()函数(ADC1_GPIO_Config()和ADC1_Mode_Config())的理解
STM32中对ADC1_Config()函数(ADC1_GPIO_Config()和ADC1_Mode_Config())的理解:
[单片机]
STM32中对<font color='red'>ADC</font>1_Config()函数(<font color='red'>ADC</font>1_GPIO_Config()和<font color='red'>ADC</font>1_Mode_Config())的理解
数字万用表工作原理
数字万用表是高精度仪器。数字万用表的双积分ADC是让万用表达到高精度的关键器件。 图1是双积分ADC的工作原理。 图1 双积分ADC的工作原理 双积分ADC包括2个部分:第一部分是充电和积分电路(图1的上升部分);第二部分是放电部分(图1的下降部分)。 在上升部分,未知信号按固定时间(t1)给积分器充电(积分时间通常是市电周期的整数倍数,以抑制市电干扰)。在下降部分,积分器按参考电压进行固定速率的放电,t2是放电时间,由计数器计数,以测量未知的输入电压。 图2是最经典的数字万用表34401A的结构框图。 (点击小图或保存,可看大图或详细结构图) 图2 业界经典的数字万用表34
[测试测量]
数字万用表工作原理
stm32 adc计算
用STM32自带的ADC读取引脚电压值,读回来的数据怎么转换成单位为V的数值??? V(ADC) = Value(ADC) * V(ref)/4096 (stm32的ADC是12位的,所以ad字的最大值是4096) 其中V(ADC)为算出的电压值;Value(ADC)为采集的AD值;V(ref)为参考电压,一般为3.3V。 比如你STM32的参考电压为3.3v,采集的AD值为1024,那么转换为电压V(ADC) = 1024×3.3/4096 = 0.825V
[单片机]
CTSD精密ADC—利用异步采样速率转换(ASRC)简化数字数据接口
CTSD Precision ADCs—Digital Data Interface Simplification with Asynchronous Sample Rate Conversion (ASRC) CTSD精密ADC—利用异步采样速率转换(ASRC)简化数字数据接口 本系列文章已突出介绍了连续时间Σ-Δ(CTSD)模数转换器(ADC)调制器环路的架构特性,这种架构能够简化ADC模拟输入端的信号链设计。现在讨论将ADC数据与外部数字主机接口以对此数据执行应用相关处理的简单但创新的方法。对任何应用而言,数字数据输出采样速率都是ADC信号链的一个关键参数。但是,不同应用有不同的采样速率要求。本文章介绍一种新型片内
[模拟电子]
CTSD精密<font color='red'>ADC</font>—利用异步采样速率转换(ASRC)简化数字数据接口
STM8 ADC转换模式-------单次扫描模式
STM8单片机ADC支持5种转换模式:单次模式,连续模式,带缓存的连续模式,单次扫描模式,连续扫描模式。 单次扫描模式 该模式是用来转换从AIN0到 之间的一连串模拟通道,‘n’是在 ADC_CSR寄存器的换的通道编号。CONT 位以被清零时通过置位 ADON 位来启动。 注意:当使用扫描模式时,不可以将 AIN0 到 AINn 之间通道对应的 I/O 口设为输出状态,因为 ADC 的多路选择器已经将这些 I/O 口的输出模块禁用了。 对于单次扫描模式,转换是从AIN0通道开始的,而且结果数据被存储在数据缓冲寄存器ADC_DBxR 中,当最后一个通道(通道‘n’)被转换完成后,EOC(转换结束)标志被置位,当EOC
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved