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使用可以参考我后面上传的程序。
现在发现还是不能用复制粘贴功能,所以具体的程序需要到我的资源里下载
转载于:https://www.cnblogs.com/fire909090/p/8665164.html
STM32的ADC采样与多通道ADC采样相关推荐
- STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据
STM32多通道ADC采样获取GY-25A倾角传感器模拟输出数据 GY-25A模块是新型的倾角传感器模块,具有X和Y两轴模拟角度输出和串口角度输出的功能.这里介绍STM32获取GY-25A模拟输出的角 ...
- STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据
STM32多通道ADC采样获取MCP9701模拟温度传感器温度输出数据 市面上常见的模拟温度传感器有TI的LM35系列,然后使用中并不简便.MCP9701是Microchip公司推出的相似的模拟温度传 ...
- STM32 ADC多通道规则采样和注入采样
layout: post tags: [STM32] comments: true 文章目录 layout: post tags: [STM32] comments: true 什么是ADC? STM ...
- cubemx 配置多通道ADC进行ADC采样
cubemx 配置多通道ADC进行ADC采样 AD的基础知识 AD很复杂,其实也不复杂,因为我们用的不多. AD:模拟量转换数字量(模拟信号转换数字信号). ADC:模拟量转数字量的转换器. 为什么需 ...
- STM32 MCO+SPI获取24位模数转换(24bit ADC)高速芯片ADS1271采样数据
STM32 MCO+SPI获取24位模数转换(24bit ADC)高速芯片ADS1271采样数据 STM32大部分芯片只有12位的ADC采样性能,如果要实现更高精度的模数转换如24位ADC采样,则需要 ...
- 瑞萨e2studio(7)----ADC通过单次扫描多通道方式采样
瑞萨e2studio.7--ADC通过单次扫描多通道方式采样 概述 视频教学 csdn课程 样品申请 硬件准备 开发板 新建工程 工程模板 保存工程路径 芯片配置 工程模板选择 时钟设置 UART配置 ...
- stm32 adc过采样_产生ADC误差的外部原因有哪些?
01 前言 上篇文章中介绍了ADC自身转换产生的误差,本篇文章来介绍下外部原因导致的ADC误差. 02 ADC环境导致的误差 参考电压噪声 由于ADC输出为模拟信号电压与参考电压之比,因此模拟参考上的 ...
- STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及傻瓜式解析)
STM32使用ADC+DMA进行多通道模拟量采集 (踩坑及通俗解析) 利用STM32的片上外设可采集多个模拟量(如传感器数值),并在嵌入式程序中使用.如果只使用了一个通道,用时令ADC转换而后读取 ...
- STM32——多通道ADC的DMA方式采集方法
前言: 最近在调试STM32F205芯片ADC多通道DMA方式采集数据,总结下STM32多通道ADC的DMA方式采集的使用方法. 硬件平台:STM32F205 软件平台:keil v5 函数库:标准库 ...
最新文章
- 总算会用sphinx生成文档了
- java pashone_java – 如何使用onejar Maven插件在清单中设置附加的Class-Path条目?
- PLC与IC卡读卡器
- mysql慢查询分析
- Flask的多app应用,多线程如何体现
- 20211108 微分跟踪器
- TIP 2019开源论文:基于深度学习的HEVC多帧环路滤波方法
- 【Linux网络编程】因特网的IP协议是不可靠无连接的,那为什么当初不直接把它设计为可靠的?
- [Spring5]IOC容器_Bean管理注解方式_注入属性@Autowired_@Qualified_@Resource_@Value
- linux信号及其含义
- 比较两个文本中数据不同的行
- Spark核心类:SQLContext和DataFrame
- 高并发高负载系统架构-php篇
- Cesium 获取屏幕所在经纬度范围
- 抓取scrapy中文文档 第一个Scrapy项目实现
- LearnOpenGL 模型加载—Assimp
- 替代YY语音,自行搭建语音实时服务器
- WinRar DOS命令大全带详细参数rar/zip/7z压缩文件解密
- 怎样提高报表呈现的性能
- win7+Ubuntu双系统安装