STM32--ADC

简介: STM32--ADC

亲们,没有关注我的还请关注一下哟,在这里会不定期更新单片机类,电路类的原创文章。


好啦,距离上次更新已经有几天了,上一次我们介绍了stm32驱动1602,以及如何根据时序写程序,如何看数据手册配置自己想要的功能,今天我们来说一下STM32--ADC


ADC: 就是把模拟量转换成单片机可以识别的数字量,在日常生活中应用也极其广泛,比如万用表上,测电压,电流、音乐频谱等ADC都是必不可少的一部分


下面我们来说说stm32的ADC,



STM32每款芯片的ADC通道就不一一赘述,不同芯片其引脚通道等都有所不同,如ZET6和VET6就不一样,具体用那个可以查一下芯片的数据手册


我每次写的时候也都是看数据手册(不然那么多,实在记不住


我们来看一下F103系列的ADC初始化结构体,以及如何配置


这是固件库里的内容,我们在使用的时候只需要把每一位按照我们的需要配置一下就ok,那么问题来了,结构体里的每一个成员分别代表啥呢,我们一个一个的来看看


ADC_Mode:这个应该很好理解,就是配置ADC的模式,独立模式/双重模式

ADC_ScanConvMode:扫描,如果是多通道的ADC采集,使能这一位,如果是单通道则不需要使能,直接DISABLE;

ADC_ContinuousConvMode:连续转换;使能时ADC连续不断的转换,失能时只转换一次,按照一般的思路来呢,一般都是连续转换

ADC_ExternalTrigConv:触发方式;分为软件触发和外部触发

ADC_DataAlign:数据对齐方式,因为stm32的ADC是12位的,而转换的值是存在寄存器的低16位,故存在数据对齐方式,有左对齐和右对齐,小编一般喜欢用右对齐

ADC_NbrOfChannel:这一位就比较简单了,就是需要转换的通道数,比如说如果是一路的ADC那此值设为1即可


结构体的每个成员都了解到了,下一步就是初始化了


调用ADC_Init()固件库函数


你不会以为就这样就结束了把


小伙子,年轻啊,


下一步还要配置ADC的时钟,这个时钟跟转换速度息息相关,通过数据手册可以知道,ADC的时钟最大14M,所以需要将系统时钟72M进行分频,这里呢可以使用6分频,也可以8分频,小编一般使用6分频,转换速度快一些

调用一下库函数即可完成ADC时钟的配置

RCC_ADCCLKConfig(RCC_PCLK2_Div6);//配置ADC的时钟,6分频,72M/6 = 12M


结束了,,,,,,,,,不存在的


下面就要来配置规则通道/注入通道,

//ADC规则通道配置 1:转换顺序 ADC_SampleTime_7Cycles5:采样时间为7.5个周期

ADC_RegularChannelConfig(ADC_x, ADC_Channel, 1, ADC_SampleTime_7Cycles5);




这个完成以后,就可以结束了吧,不好意思,还有



//使能ADC转换完成中断 ADC_IT_EOC:规则通道

ADC_ITConfig(ADC_x, ADC_IT_EOC, ENABLE);



中断也配置完了,ok

使能ADC吧

ADC_Cmd(ADC_x, ENABLE); //ADC使能


终于快结束了


下一步就是校准ADC并等待校准完成

ADC_StartCalibration(ADC_x); //开始校准

while(ADC_GetCalibrationStatus(ADC_x));//等待校准完毕



最后一步了,这次真的是最后一步了


软件触发

ADC_SoftwareStartConvCmd(ADC_x, ENABLE); //软件触发


ojbk


然后在中断里读取转换的值就好啦



在这里呢,为了简便,我就把转换的值放在串口上显示出来,就没用再去搞液晶显示了(效果一样)


来看看串口显示的值吧



这里呢,只能测0-3.3v的电,


如果测超过3.3V怎么办呢,


串联电阻分压即可


好啦,今天就说到这里啦,有任何问题可以私信我哟

相关文章
|
6月前
|
存储 调度 数据库
STM32--DMA
STM32--DMA
|
6月前
|
传感器 存储 缓存
STM32--MPU6050与I2C外设
STM32--MPU6050与I2C外设
161 1
|
6月前
|
存储
STM32--ADC模数转换
STM32--ADC模数转换
116 0
|
6月前
|
传感器 数据采集 存储
STM32--GPIO
STM32--GPIO
|
6月前
|
存储 缓存 芯片
STM32--USART串口
STM32--USART串口
108 0
STM32F103C8 TIM输出比较与PWM
STM32F103C8 TIM输出比较与PWM
111 0
|
存储 传感器
STM32速成笔记(七)—ADC
本文介绍了ADC的概念,用途,针对STM32的ADC做出了详细介绍,给出了配置步骤,配置程序。通过一个简单的小项目展示了ADC的配置和使用方法。此外,还针对如何利用定时器触发AD转换,如何采集交流信号,如何计算交流信号有效值进行了介绍,并给出了程序设计。
275 0
STM32速成笔记(七)—ADC
|
传感器 编解码
【STM32】 ADC模数转换
ADC:模拟数字转换器,是指将连续变量的模拟信号(高低电平)转换位离散的数字信号(0和1)的器件,AD转换就是模数转换,也可以是整流.顾名思义 ,就是把模拟信号转换为数字信号.
【STM32】 ADC模数转换
|
存储 传感器 数据采集
12- STM32模数转换器(ADC)(上)
12- STM32模数转换器(ADC)