STM32单片机中ADC的采样通道的采样周期是指啥?请各位高手把大致的工作原理讲解下。谢谢啦。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STM32单片机中ADC的采样通道的采样周期是指啥?请各位高手把大致的工作原理讲解下。谢谢啦。相关的知识,希望对你有一定的参考价值。

ADC转换就是输入模拟的信号量,单片机转换成数字量。读取数字量必须等转换完成后,完成一个通道的读取叫做采样周期。采样周期一般来说=转换时间+读取时间。而转换时间=采样时间+12.5个时钟周期。采样时间是你通过寄存器告诉stm32采样模拟量的时间,设置越长越精确 参考技术A 请在百度搜索一下stm32神舟系列的开发板的资料,有个700多页的文档资料有详细讲解

STM32的ADC采样与多通道ADC采样

一 单通道采样 
参考资料:

《STM32库开发实战指南》 刘火良,杨森著

原理性质的东西还是少讲,因为上面那本书里面讲解的很详细了,直接来看硬件电路图

技术分享图片

这里使用的是3362电位器(10K),即用STM32来测量PB0和GND两端的电压,这样的电路设计比较简单也容易理解,但是存在一定的弊端,下面给出《STM32库开发实战指南》上面配套的硬件电路图 
技术分享图片

如果设计电路图的话,可以参考这种思路。

我的收获 
1 引脚初始化的时候需要注意 
技术分享图片

每一个ADC通道都对应一个GPIO引脚,看图中的ADC123_IN10,表示这个引脚(PC0)可以配置为ADC1的通道10,或者是ADC2的通道10,或者是ADC3的通道10,这个地方非常重要,涉及到后面ADC初始化时函数的调用。

比如当我们使能ADC时,我们调用的函数是

ADC_Cmd();
  • 1

如果我们使用的是ADC1,那么上面函数的写法就应该是

ADC_Cmd(ADC1,ENABLE);
  • 1

相应的如果是ADC2,那么上面函数的写法就是

ADC_Cmd(ADC2,ENABLE);
  • 1

另外需要注意的是,我们这里的ADC使用了DMA,所以如果你使用的是ADC1,那么对应的DMA就应该是DMA1的通道1

技术分享图片

如果使用的是ADC2或者是ADC3就需要自己去查找手册,看看对应的是哪个DMA的那个通道。

在后面上传的程序中可以看到DMA初始化的时候有这么一条语句

DMA_Init(DMA1_Channel1);
  • 1

这就是初始化DMA1的通道1

相应的

DMA_Cmd(DMA1_Channel1,ENABLE);
  • 1

就是使能DMA1的通道1

总结一句,配置的IO口不同,对应ADC和DMA就不同。

在单通道的ADC采样中,注意上面这一个点就可以了,但是多通道采样还需要注意其他的一些地方

二 多通道采样

还是看上面的电路图

技术分享图片

这里我们假设使用PB0和PC0端口来采集电压。

stm32有三个ADC,每个ADC对应16个通道,这里我们只是用其中的两个通道来做说明。

在程序中PB0设置为ADC1的通道8,PC0设置为ADC1的通道10。

需要注意的几个点:

1 引脚的配置,在上面已经说到

技术分享图片

2 ADC模式的一些配置

对ADC模式的配置主要是通过对ADC_InitTypeDef结构体成员的初始化来完成的。

ADC_InitTypeDef ADC_InitStructure;
  • 1
ADC_InitStructure.ADC_ScanConvMode=ENABLE;
  • 1

结构体的这个成员主要是用来设置ADC的扫描模式,我们使用通道8和通道10,当然要允许ADC进行通道的扫描

ADC_InitStructure.ADC_NbrOfChannel=2;
  • 1

这个结构体成员是用来表明要转换的通道数目,这里我们使用通道8和通道10两个通道,那么这个值必然是2。

ADC_RegularChannelConfig();
  • 1

这是一个非常重要的函数 
技术分享图片

这是从《stm32库函数使用手册》中截到的图,关于函数具体参数的使用可以去看该手册。

下面结合程序来看一下这个函数的使用

技术分享图片

函数的第三个参数是用来设置采样顺序的,看我们的程序,也就是说我们设置ADC1的通道8先进行采样,接着ADC1的通道10再进行采样。

写到这里,基本上多通道ADC采样程序就差不多了,至于具体的DMA使用可以参考我后面上传的程序。

现在发现还是不能用复制粘贴功能,所以具体的程序需要到我的资源里下载






以上是关于STM32单片机中ADC的采样通道的采样周期是指啥?请各位高手把大致的工作原理讲解下。谢谢啦。的主要内容,如果未能解决你的问题,请参考以下文章

stm32 ADC采样速率的问题

STM32的ADC采样与多通道ADC采样

stm32 adc中断,采样,然后一直(中断一次,采样一次)循环怎么做,求高手指导,自己小白。

stm32的ADC规则组通道采样顺序设置

STM32H7教程第46章 STM32H7的ADC应用之DMA方式多通道采样

stm32_ADC定时器采样(DMA均值处理数据)