历史上的今天
返回首页

历史上的今天

今天是:2025年04月23日(星期三)

正在发生

2019年04月23日 | STM32的ADC的原理与使用

2019-04-23 来源:eefocus

一、ADC的原理及定义


Analog-to-Digital Converter的缩写。中文译名:模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。其实就是一个取样、量化、编码的一个过程。


典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。比如电量、光照传感器等常用。


----------------------------------------------------------------------------------------------------------------------------------------------------------------


二、模拟信号


模拟信号是指用连续变化的物理量表示的信息,其信号的幅度,或频率,或相位随时间作连续变化,如目前广播的声音信号,或图像信号等。


----------------------------------------------------------------------------------------------------------------------------------------------------------------


三、数字信号


数字信号指幅度的取值是离散的,幅值表示被限制在有限个数值之内。 二进制码就是一种数字信号。二进制码受噪声的影响小,易于有数字电路进行处理,所以得到了广泛的应用。


----------------------------------------------------------------------------------------------------------------------------------------------------------------


四、单次转化与连续转换对比


 

----------------------------------------------------------------------------------------------------------------------------------------------------------------


五、扫描模式


其他请参考其中文参考手册


----------------------------------------------------------------------------------------------------------------------------------------------------------------


六、STM32F40x系列ADC外部通道和引脚对应关系 


----------------------------------------------------------------------------------------------------------------------------------------------------------------


七、实现过程


1、开启PA口时钟和ADC1时钟,设置PA1为模拟输入。


RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);

 

RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1, ENABLE);

 对应的GPIO初始化  


 GPIO_Init();      

2、复位ADC1,同时设置ADC1分频因子。


 ADC_DeInit(ADC1);

3、初始化ADC_CCR寄存器。


  ADC_CommonInit();

4、初始化ADC1参数,设置ADC1的工作模式以及规则序列的相关信息。


  void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct);

5、使能ADC。


 ADC_Cmd(ADC1, ENABLE);

6、配置规则通道参数:


  ADC_RegularChannelConfig();

7、开启软件转换:


ADC_SoftwareStartConvCmd(ADC1);

8、等待转换完成,读取ADC值。


 ADC_GetConversionValue(ADC1);

----------------------------------------------------------------------------------------------------------------------------------------------------------------

推荐阅读

史海拾趣

ATO SOLUTION公司的发展小趣事

在电子行业的激烈竞争中,ATO SOLUTION公司通过一项创新性的技术突破,成功引领了市场的新潮流。该公司研发出了一款高效能的半导体芯片,极大地提升了电子设备的性能和能效比。这一技术的问世,迅速获得了行业内外的广泛关注和认可,为公司赢得了大量合作伙伴和客户,奠定了市场领先地位。

Dau Semiconductor Inc公司的发展小趣事

Dau Semiconductor Inc公司成立于XXXX年,由几位在半导体行业拥有多年经验的工程师创立。当时,他们意识到在快速发展的电子行业中,高性能、低功耗的半导体芯片有着巨大的市场需求。于是,他们决定依托自己在半导体设计和制造方面的技术积累,创办Dau Semiconductor Inc公司,专注于研发和生产高性能的半导体芯片。

High Tech Chips Inc公司的发展小趣事

随着全球电子市场的不断发展壮大,Dau Semiconductor Inc公司开始将目光投向全球市场。公司积极开拓海外市场,与全球各地的电子产品制造商建立合作关系。同时,公司还加强了与国际知名半导体企业的合作与交流,共同推动半导体技术的发展和应用。展望未来,Dau Semiconductor Inc公司将继续秉承创新、卓越、服务的企业精神,为全球电子行业的发展做出更大的贡献。

Amphenol Thermometrics公司的发展小趣事

Dau Semiconductor Inc公司成立于XXXX年,由几位在半导体行业拥有多年经验的工程师创立。当时,他们意识到在快速发展的电子行业中,高性能、低功耗的半导体芯片有着巨大的市场需求。于是,他们决定依托自己在半导体设计和制造方面的技术积累,创办Dau Semiconductor Inc公司,专注于研发和生产高性能的半导体芯片。

AMRI Enterprise Co Ltd公司的发展小趣事

AMRI Enterprise Co Ltd在电子行业中崭露头角,源于其一次重大的技术突破。公司研发团队经过数年的努力,成功开发出了一款具有高效能、低功耗特点的芯片,引起了市场的广泛关注。这一技术突破不仅提升了AMRI的产品竞争力,还为公司赢得了众多合作伙伴的青睐。随着产品线的不断扩展和市场份额的逐步增加,AMRI逐渐在电子行业中站稳了脚跟。

CML公司的发展小趣事

随着电子行业的快速发展,CML意识到只有不断创新才能在激烈的市场竞争中立于不败之地。于是,公司加大了对研发的投入,积极引进先进的技术和设备,不断提升产品的性能和质量。经过多年的努力,CML成功开发出了一系列具有自主知识产权的半导体产品,不仅在国内市场占据了领先地位,还成功打入国际市场,赢得了全球客户的信赖和好评。

问答坊 | AI 解惑

安规相关资料下载

  顶一下谢谢   还有 安规的基本准则是:   产品在设计和生产中应该避免以下危险的产生: 1触电和能量的危险 2火灾 3热的危险 4机械危险 5辐射和化学危险        …

查看全部问答>

请问如何在EVC应用程序中获得平台信息

我的问题是这样的: 在不同平台中共用一段代码,在代码中通过宏定义,选择编译不同的程序。如: #ifdefine PLATFORM1     #include \"platform1.h\" #elif PLATRORM2    #include \"platform2.h\" #endif 然后我在程序 ...…

查看全部问答>

usb传输速率

wince 设备支持全速模式,但不支持高速模式,能和USB2.0兼容,但是,当设备连接上pc,进入存储(即设备当作u盘)时 设备的usb驱动设置为全速模式,但是实际COPY 文件的时候速度只有0.5Byte左右,按道理理论有12/8=1.5Byte,请问怎 样能提高呢。 ...…

查看全部问答>

求教wince5.0的USB Function驱动问题!

    请问wince5.0的usb function controller驱动是怎么被加载的?在Ufnmdd.cpp中的UFN_Init等接口函数怎么被调用执行?在source文件中利用Ufnmdd.cpp只生成了个usbmddbase.lib库而没有生成DLL,在最终的image中也没有打包进去,那怎么样才 ...…

查看全部问答>

TL431做基准源的问题

请问图中两个电路,对输出而言有什么区别呢?我现在需要的是10V的基准源。 图中的做法是用:3K电阻和1K电阻的比值+1=4,然后4×2.5V=10V 但是5V输入和15V输入难道就没区别了?不太明白...恳请赐教~~…

查看全部问答>

编程添加标准33600bps调制解调器的问题

我的机器是winXP,用USB口虚拟了一个串口,连接了一个modem 正常情况下要在控制面板->电话和调制解调器 中添加一个标准33600bps调制解调器才能正常通信 现在我想自己写程序完成这个安装过程(不调用电话和调制解调器窗口) inf文件用的是C:\\WINDO ...…

查看全部问答>

团购工业模拟器件套装已收到,发帖感谢!

本帖最后由 dontium 于 2015-1-23 13:17 编辑 不错,可惜REF5025是标准版,封装都比较小 …

查看全部问答>

第八届中国国际国防电子展览会报道

      阿牛哥5月10日去北京展览馆参加第八届中国国际国防电子展览会。这次参加国防电子展的固态硬盘供应商 连接器制造商 射频芯片供应商很多 智能视频监控方案提供商也很多 还有几家高校的雷达研究所产品也很有特色。 &n ...…

查看全部问答>

很好的模拟电路资料大全--值得收藏

放大器是一种三端电路,其中必有一个端是输入和输出的共同“地”端,如果这个共“地”端接于发射极的,称为共射电路,接于集电极的,称为共集电路,接于基极的,称为共基电路,这三种有不同的性能. …

查看全部问答>