stm32—ADC

news2025/2/5 17:53:08

1. 什么是ADC

生活中我们经常会用到ADC这种器件,比如说,当我们在使用手机进行语音通信时,ADC器件会将我们的声信号转换为电信号 (模拟信号 ---> 数字信号)

模拟信号:

        模拟信号是指用连续变化的物理量表示的信息,其信号的幅度、频率、相位随时间作连续变化,或在一段连续的时间间隔内,其代表信息的特征量可以在任意瞬间呈现为任意数值的信号


数字信号:

        数字信号指自变量是离散的、因变量也是离散的信号,这种信号的自变量用整数表示,因变量用有限数字中的一个数字来表示。在计算机中,数字信号的大小常用有限位的二进制数表示

自然界中大部分信号都是模拟的,比如说:温度、压力、声音、速度等等,这些信号容易受噪声干扰且不易存储,而数字信号则没有这两种缺点,因此我们使用ADC器件以便于我们处理和存储这些模拟信号


将模拟信号转化为数字信号一般包括三个步骤:抽样量化编码

抽样(采样):是在发送端将模拟信号转换为离散信号的过程

        采样定理:在进行模拟/数字信号的转换过程中,当采样频率大于信号中最高频率的2倍时,采样之后的数字信号就能完整地保留原始信号中的信息

        远远高于信号带宽两倍或其最高频率对其进行采样的过程,又叫做过采样

        采样的目的:为了利用有限的采用率,无失真的还原出原有声音信号的样子

量化:抽样信号在各抽样时刻的幅度反映了模拟信号的幅度变化,因此仍然是连续的,必须在编码之前,将幅度抽样值用预先规定的有限个取值来表示
编码:所谓编码就是将量化器输出量化信号在各离散时刻的取值用指定位数的二进制代码表示,从而得到数字信号

ADC的作用:采集传感器数据,测量输入电压,检查电池电量剩余,检测温度 ......

2. ADC0809模块的工作原理

在早期单片机性能相对较弱时,单片机内部并没有ADC外设往往需要外接ADC模块进行ADC采集

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近组成

1. 引脚介绍

3. stm32 ADC外设

STM32F407有3个ADC,每个ADC有16个通道,下表为ADC通道对应的引脚,使用哪个通道就用杜邦线将对应的引脚与模拟输入连接起来

1. 分辨率:

        分辨率表示精度,位数越高精度越高,同时也表示最小可检测电压变化。例如12位分辨率,即ADC输出数据范围为0—4095


2. ADC输入

        ADCx_IN0—ADCx_IN15 + 温度传感器 + VREFINT + VABT

3. 测量范围

参考电压:即测量范围,VREF- — VREF+



由原理图可知:VDDA = 3.3v VSSA = GND,即ADC测量电压测量范围为0-3.3V

4. 转换通道

通道选择:选择由哪个通道对外部输入进行转换


规则通道:

        可以按照设置的转换顺序进行转换的通道。一个规则转换组最多由 16 个转换构成

注入通道:

        可以“插队”,也就是说,注入通道的转换可以打断规则通道的转换,在注入通道被转换完成之后,规则通道才可以继续转换。一个注入转换组最多由 4 个转换构成

不同于ADC0809模块只能从8个通道中选择一个进行转换,stm32可以同时选择多个通道进行转换

5. 转换顺序

转换顺序选择:转换顺序即为通道中对应输入的顺序,配置方式如下:


6. 启动转换

触发信号:即开始ADC采集信号
配置了转换通道以及转换顺序之后,便可以开始转换了。ADC触发转换的有很多种方式:

        软件触发:ADC 转换可以由 ADC 控制寄存器2(ADC_CR2) 的 ADON 这个位来控制,写 1 的时候开始转换,写 0 的时候停止转换;
        外部事件触发:可分为内部定时器触发和外部IO触发
                内部定时器触发:

                外部IO触发:


数据转换:STM32 AD转换模块

7. 转换时间

8. 转换方式

转换方式:STM32 对于通道内转换序列的转换方式包括连续\单次,扫描\非扫描

单次模式:转换一次后,就停止转换

连续模式:转换一次后,接着进行下一次转换,不断连续

扫描模式:对于对通道的转换按设置顺序依次转换

非扫描模式:对于对通道的转换按设置顺序依次转换,但是每个序列转换需要

因此按照上述模式,总共有四种转换方式:

单次转换非扫描模式


连续转换非扫描模式

单次转换扫描模式

连续转换扫描模式



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2056668.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Vue3】编程式路由导航

【Vue3】编程式路由导航 背景简介开发环境开发步骤及源码总结 背景 随着年龄的增长,很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来,技术出身的人总是很难放下一些执念,遂将这些知识整理成文,以纪念曾经努力学习奋斗的日…

【Qt】 常用控件QLCDNumber

常用控件QLCDNumber QLCDNumber是一个专门用来显示数字的控件,类似于“老式计算机”的效果。 QLCDNumber的属性 属性说明 intValue QLCDNumber 显⽰的数字值(int). value QLCDNumber 显⽰的数字值(double). 和 intValue 是联动的. 例如给 value 设为 1.5, i…

C语言程序设计-练习篇

山海自有归期&#xff0c;风雨自有相逢。 一 下面代码的结果是什么&#xff1f; int main() { int i 0; for (i 0; i < 10; i) { if (i 5) //此处为赋值&#xff0c;i 5表达式结果为5 printf("%d ", i); //表达式为真&a…

AI 进阶实战 | 走进大模型(LLM)+智能体(Agent)+提示词(Prompt)

前言 人工智能&#xff08;AI&#xff09;不再只是科幻电影中的桥段&#xff0c;而是正以前所未有的速度改变着我们的世界。随着大规模语言模型&#xff08;LLM&#xff09;系列的崛起&#xff0c;结合高度智能的&#xff08;Agent&#xff09;与精心设计的&#xff08;Prompt…

topic交换机

topic交换机 是什么交换机模式 这个模式可以用点分割代表不同的消息类型 例如:有4种消息,其中我想发送china相关的消息,就china.#,指多个单词 我想发送各国的天气,就可以#.weather 优势 比directexchange相比更方便些 案例 创建队列 创建交换机 绑定 绑定关系已确认

macOS安装搭建python环境

安装Homebrew apt-get是一个常见于Debian和Ubuntu等基于Linux的操作系统中的包管理工具&#xff0c;用于安装、更新和移除软件包。然而&#xff0c;macOS使用的是Homebrew或者MacPorts等其他的包管理工具&#xff0c;并不使用apt-get。 如果你想在macOS上使用类似apt-get的功…

创建、使用、删除 数据库

一、创建数据库 1.1 使用DDL语句创建数据库 CREATE DATABASE 数据库名 DEFAULT CHARACTER SET 字符编码; 案例&#xff1a; 创建一个test 的数据库&#xff0c;并查看该数据库。 create database test default character set utf8; show databases; 1.2 使用Navicat创建数据库 …

快速排序的深入优化探讨

快排性能的关键点分析 决定快排性能的关键点是每次单趟排序后&#xff0c;key对数组的分割&#xff0c;如果每次选key基本⼆分居中&#xff0c;那么快排的递归树就是颗均匀的满⼆叉树&#xff0c;性能最佳。但是实践中虽然不可能每次都是⼆分居中&#xff0c;但是性能也还是可…

【电子信息工程大学生的职业准备策略指南】

电子信息工程是一个快速发展且应用广泛的领域&#xff0c;对于大学生来说&#xff0c;为未来的职业生涯做好准备是一项重要任务。 目录 一、扎实的专业知识基础 二、实践能力的培养 三、编程与软件开发技能 四、创新思维与解决问题的能力 五、专业认证与资格证书 六、实习…

Element UI中el-dialog作为子组件如何由父组件控制显示/隐藏~

1、这里介绍的是将el-dialog作为组件封装便于复用&#xff0c;如何通过父组件控制子组件dialog的显示与隐藏。 2、思路:首先el-dialog是通过dialogVisible的值是否为true或false来控制显示与隐藏的。那么我们可以通过父传子props来将true&#xff08;即showFlag的值&#xff0…

影刀RPA--如何获取网页当页数据?

&#xff08;1&#xff09;点击数据抓取-选择需要获取数据的地方-会弹出是否是获取整个表格&#xff08;当前页面&#xff09; &#xff08;2&#xff09;点击“是”&#xff1a;则直接获取整个表格数据-点击完成即可 &#xff08;3&#xff09;点击“否”&#xff1a;如果你想…

发那科机器人常见的异常解决方案

第一类错误&#xff1a;示教板空白、机器人死机 判断方法&#xff1a;1、PSU 上红色LED 亮代表电源供给报警&#xff0c;可能保险F4熔断、查看CP2、CP3线路&#xff08;200ACV输出&#xff09;、更换PSU&#xff1b;绿色PIN熄灭代表电源供给单元未获得200V 的交流电源输入&…

1.检查现场运行环境-《篮球比赛展示管理系统》现场管理员角色操作手册

篮球比赛现场PC电脑,充当管理端&#xff0c;内装的浏览器要求是Firefox、Chrome、Edge、Safari等最新版市场主流浏览器等。

SAP EWM PMR

目录 1 简介 2 业务流程 3 业务操作 4 主数据设置 4.1 ERP 主数据 4.2 EWM 主数据 5 后台配置 5.1 主数据 5.2 GI 流程 5.3 仓库内部移动流程 5.4 仓库任务设置 5.5 集成 5.6 EWM 链接 1 简介 EWM PMR 分 2 部分功能&#xff0c;第一是 MES-Driven Staging&#…

OSI七层网络模型 /TCP/IP五层模型以及封装分用的详细讲解

文章目录 协议分层的好处OSI七层网络模型TCP/IP五层网络模型网络设备所在的分层(重点)封装和分用 协议分层的好处 第一点&#xff1a; 在网络通信中&#xff0c;如果使用一个协议来解决所有的问题&#xff0c;那么这个协议就会非常的庞大&#xff0c;非常不利于去学习和理解&…

Ciallo~(∠・ω・ )⌒☆第二十二篇 入门request请求库使用

请求库是用于发送HTTP请求的工具。常见的请求库有requests&#xff0c;它是一个功能强大且易于使用的HTTP库。 使用requests库发送GET请求&#xff1a; import requests url "https://httpbin.org/get"# 携带get请求参数 params {"pn": 10,"size&q…

PyTorch的torchvision内置数据集使用,transform+pytorch联合使用

一、PyTorch的torchvision内置数据集介绍 我们前面的文章里谈到的数据集是我们自己找的一些自定义数据集。那么在Pytorch中存在2种数据集&#xff08;Dataset&#xff09;&#xff0c;即内置数据集&#xff08;Built-in dataset&#xff09;和自定义数据集&#xff08;Custom d…

架站点云自动拼接

southLidar pro 软件里面的架站点云无目标、无传感器的点云自动拼接算法&#xff0c;该算法的特征是速度快&#xff0c;精度高、稳定性高&#xff0c;大部分的场景都能一键自动拼接成功。速度、稳定性&#xff1a;比RealWorks 12、SCENE 2019等软件都快。精度&#xff1a;高于S…

python-docx 实现 Word 办公自动化

前言&#xff1a;当我们需要批量生成一些合同文件或者简历等。如果手工处理对于我们来说不仅工作量巨大&#xff0c;而且难免会出现一些问题。这个时候运用python处理word实现自动生成文件可极大的提高工作效率。 python-docx是python的第三方插件&#xff0c;用来处理word文件…

UPS快递查询|利用API对接国际物流轨迹

聚合国内外1500家快递公司的物流信息查询服务&#xff0c;使用API接口查询UPS快递的便捷步骤&#xff0c;首先选择专业的数据平台的快递API接口&#xff1a;https://www.tanshuapi.com/market/detail-68 以下示例是参考的示例代码&#xff1a; import requestsurl "http…