LPC1768ADC如何设置成硬件手机扫描图片软件模式,就是现在我想读取ADC通道0和ADC通道1的值我该如何配置

本站上的所有资源均为源于网上收集或者由用户自行上传,仅供学习和研究使用,无任何商业目的,版权归原作如有侵权,请 ,本站将立即改正。

LPC1768包含一个ADC模块,12位逐次逼近式模数转换器,由8个引脚复用为模拟输入引脚,200KHz12位转换频率,测量范围是0~VREFP(通常为3V,不超过VDDA),可选择有输入跳变或者定时器触发等方式启动转换。A/D转换器的基本时钟是由APB时钟提供。A/D转换器包含一个可编程的分频器,它可以讲APB时钟调整为主次逼近转换所需的时钟(最大可达13MHz)。并且,完全满足精度要求的转换需要65个这样的时钟。

该例程用到的硬件主要是ADC,其次是辅助硬件串口和LCD屏,主要用作数据的显示。如果使用串口0,则需要把JP6JP7拔掉。

首先看主程序,主程序中首先是对LCDUART0的初始化,如果你没有用到LCD显示或者串口的显示,在主函数中可以注释有关代码,然后是ADC的初始化。在while()中,首先连续采集了8ADC数据,然后对得到的数据进行处理,转换成要显示的数据。

接下来看ADC的初始化,程序如下图所示:

从程序当中可以看到首先是对IO口进行设置,将IO配置成模拟输入。

然后是对时钟的使能,在功率控制寄存器PCONP中的第12位置1

ADC的控制器寄存器进行配置,选择通道,分频,以及使能ADC

接下来就是对ADC的值的采集,

首先是启动AD转换,对控制寄存器的26:24三个位写0,即是停止转换,写001是立即启动转换。启动转换之后,读取ADGDR寄存器的31位,判断数据转换是否结束,数据转换结束之后,读取其12位的AD值,最后停止转换,完成一次ADC的数据采集。A/D 全局数据寄存器ADGDR包含最近一次A/D 转换的结果,还包含转换过程中出现的状态标志的复件。

有两种方法可以读取 ADC 的转换结果。一种就是利用A/D 全局数据寄存器来读取ADC的全部数据,另一种是读取A/D通道数据寄存器。固定使用一种方法非常关键,否则DONE 和OVERRUN 标志在AD0GDR 和A/D 通道数据寄存器之间就不会同步,还可能会引起错误中断或DMA 操作。

也可以通过读取ADDR0~ADDR7寄存器中对应的通道的值,来获得对应通道的ADC采集值,

ADC数据转换结束之后,也是会产生中断的,需要对ADINTEN寄存器中,先使能对应通道的中断。

如果使用的是串口作为显示,则是下面的实验现象,使用USB线接在USB1接口上,拔掉JP6JP7,查看枚举出来的COM口,设置串口调试助手波特率是115200。注意要插上JP10,转动可调电阻VR1。实验现象如下图:

如果使用3.2寸屏,则显示如下:


声明:本站内容源于网络,出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。文章内容仅供参考,请咨询相关专业人士。

如果无意之中侵犯了您的版权,或有意见、反馈或投诉等情况, 联系我们:shnews500#tom.com

我要回帖

更多关于 手机扫描图片软件 的文章

 

随机推荐