历史上的今天
今天是: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);
----------------------------------------------------------------------------------------------------------------------------------------------------------------
史海拾趣
|
我的问题是这样的: 在不同平台中共用一段代码,在代码中通过宏定义,选择编译不同的程序。如: #ifdefine PLATFORM1 #include \"platform1.h\" #elif PLATRORM2 #include \"platform2.h\" #endif 然后我在程序 ...… 查看全部问答> |
|
请问wince5.0的usb function controller驱动是怎么被加载的?在Ufnmdd.cpp中的UFN_Init等接口函数怎么被调用执行?在source文件中利用Ufnmdd.cpp只生成了个usbmddbase.lib库而没有生成DLL,在最终的image中也没有打包进去,那怎么样才 ...… 查看全部问答> |
|
请问图中两个电路,对输出而言有什么区别呢?我现在需要的是10V的基准源。 图中的做法是用:3K电阻和1K电阻的比值+1=4,然后4×2.5V=10V 但是5V输入和15V输入难道就没区别了?不太明白...恳请赐教~~… 查看全部问答> |
|
我的机器是winXP,用USB口虚拟了一个串口,连接了一个modem 正常情况下要在控制面板->电话和调制解调器 中添加一个标准33600bps调制解调器才能正常通信 现在我想自己写程序完成这个安装过程(不调用电话和调制解调器窗口) inf文件用的是C:\\WINDO ...… 查看全部问答> |
|
阿牛哥5月10日去北京展览馆参加第八届中国国际国防电子展览会。这次参加国防电子展的固态硬盘供应商 连接器制造商 射频芯片供应商很多 智能视频监控方案提供商也很多 还有几家高校的雷达研究所产品也很有特色。 &n ...… 查看全部问答> |
|
放大器是一种三端电路,其中必有一个端是输入和输出的共同“地”端,如果这个共“地”端接于发射极的,称为共射电路,接于集电极的,称为共集电路,接于基极的,称为共基电路,这三种有不同的性能. … 查看全部问答> |




