当前位置: 首页 > news >正文

嵌入式硬件篇---ADC模拟-数字转换


文章目录

  • 前言
  • 第一部分:STM32 ADC的主要特点
    • 1.分辨率
    • 2.多通道
    • 3.转换模式
    • 4.转换速度
    • 5.触发源
    • 6.数据对齐
    • 7.温度传感器和Vrefint通道
  • 第二部分:STM32 ADC的工作流程:
    • 1.配置ADC
    • 2.启动ADC转换
  • 第三部分:ADC转化
    • 1.抽样
    • 2.量化
    • 3.编码
  • 第四部分:额外小知识
  • 总结


前言

以上就是今天要讲的内容,本文仅仅简单介绍了STM32中ADC模拟-数字转换的实现。


第一部分:STM32 ADC的主要特点

1.分辨率

分辨率:STM32的ADC通常具有12位、10位、8位或6位的分辨率。这意味着它们可以将模拟信号分为212、210、28或26个不同的电平。

2.多通道

多通道:STM32微控制器通常具有多个模拟输入通道,允许同时或分时转换多个信号。

3.转换模式

单次转换模式:ADC只执行一次转换
连续转换模式:ADC连续执行转换,不需要软件干预。

4.转换速度

转换速度:STM32的ADC转换速度可以从几微秒到几十微秒不等,具体取决于MCU型号和配置。

5.触发源

触发源:转换可以由软件触发,也可以由外部事件(如定时器捕获事件)触发。

6.数据对齐

数据对齐:数据可以在左对齐或右对齐的格式中读取。

7.温度传感器和Vrefint通道

温度传感器和Vrefint通道:某些STM32微控制器内置了温度传感器和内部参考电压(Vrefint)通道,可以直接连接到ADC。

第二部分:STM32 ADC的工作流程:

1.配置ADC

  1. 选择ADC通道。
  2. 设置分辨率。
  3. 选择转换模式(单次或连续)。
  4. 配置触发源。
  5. 设置采样时间(对于不同通道可能不同)。
  6. 启动ADC校准(如果需要):校准是为了提高转换精度。

2.启动ADC转换

  1. 在单次转换模式下,通过软件命令启动转换。
  2. 在连续转换模式下,转换会自动开始。
  3. 读取转换结果:转换完成后,结果存储在ADC数据寄存器中,可以通过软件读取。
  4. 中断和DMA:转换完成后,可以配置ADC产生中断或直接使用DMA(直接内存访问)将转换结果传输到内存中,减少CPU的负担。

第三部分:ADC转化

1.抽样

对模拟信号进行采样(间隔固定周期),获得在时间上离散的信号(抽样信号)

2.量化

本质:根据某一标准进行分级
通过提高分辨率,实现准确的ADC转换

3.编码

将量化结果进行编码存储

第四部分:额外小知识

  1. 数字信号:高电平或者低电平
  2. 模拟信号:任意的电压值
  3. STM32中使用逐次逼近法来实现模拟数字转化(通过二分比较来判断大小)将比较结果存储到专门存储比较结果的数据寄存器中,通过归一化转化及乘以参考电压来实现结果值获取
  4. STM32会通过存储待测电压于电容上实现提高测量准确率的效果
  5. STM32F103有16个GPIO口能进行电压值采样工作(16个ADC外部通道);但在STM32F103C8T6上只前10个ADC外部通道,但有两个内部通道来采集芯片内部的电压值(内部的芯片传感器上、内部的参考电压上)
  6. STM32存在连个ADC转换通道
  7. STM32的内部参考电压会比外部参考电压更准确,因此可以使用对内部参考电压的ADC测量反推实际的参考电压进而实现更准确的ADC测量
  8. ADC实现方法:Pipeline ADC、逐次逼近ADC、Sigma-Delta ADC,这三种ADC实现方法的分辨率逐渐提高同时采样速度逐渐下降

总结

以上就是今天要讲的内容,本文仅仅简单介绍了STM32中ADC模拟-数字转换的实现。

相关文章:

嵌入式硬件篇---ADC模拟-数字转换

文章目录 前言第一部分:STM32 ADC的主要特点1.分辨率2.多通道3.转换模式4.转换速度5.触发源6.数据对齐7.温度传感器和Vrefint通道 第二部分:STM32 ADC的工作流程:1.配置ADC2.启动ADC转换 第三部分:ADC转化1.抽样2.量化3.编码 第四…...

每打开一个chrome页面都会【自动打开F12开发者模式】,原因是 使用HBuilderX会影响谷歌浏览器的浏览模式

打开 HBuilderX,点击 运行 -> 运行到浏览器 -> 设置web服务器 -> 添加chrome浏览器安装路径 chrome谷歌浏览器插件 B站视频下载助手插件: 参考地址:Chrome插件 - B站下载助手(轻松下载bilibili哔哩哔哩视频&#xff09…...

Access数据库教案(Excel+VBA+Access数据库SQL Server编程)

文章目录: 一:Access基础知识 1.前言 1.1 基本流程 1.2 基本概念?? 2.使用步骤方法 2.1 表【设计】 2.1.1 表的理论基础 2.1.2 Access建库建表? 2.1.3 表的基本操作 2.2 SQL语句代码【设计】 2.3 窗体【交互】? 2.3.1 多方式创建窗体 2.3.2 窗体常用的控件 …...

09、PT工具用法

目录 1、PT工具原理 2、在线修改表结构 3、使用pt-query-diges分析慢查询 4、使用pt-kill来kill掉一些垃圾SQL 5、pt-table-checksum进行主从一致性排查和修复 6、pt-archiver进行数据归档 7、其他一些pt工具 1、PT工具原理 创建一张与原始表结构相同的临时表 然后对临时…...

华为OD机试E卷 --矩形相交的面积--24年OD统一考试(Java JS Python C C++)

文章目录 题目描述输入描述输出描述用例题目解析JS算法源码Java算法源码python算法源码题目描述 给出3组点坐标(x, y, w, h),-1000<x,y<1000,w,h为正整数。 (x,y, w, h)表示平面直角坐标系中的一个矩形:x, y为矩形左上角坐标点,w, h向右w,向下h。(X, y, w, h)表示x轴…...

C++ 内存分配和管理(八股总结)

C是如何做内存管理的&#xff08;有哪些内存区域&#xff09;? &#xff08;1&#xff09;堆&#xff0c;使用malloc、free动态分配和释放空间&#xff0c;能分配较大的内存&#xff1b; &#xff08;2&#xff09;栈&#xff0c;为函数的局部变量分配内存&#xff0c;能分配…...

如何使用 JSONP 实现跨域请求?

以下是使用 JSONP 实现跨域请求的步骤&#xff1a; 实现步骤&#xff1a; 1. 客户端设置 在客户端&#xff0c;你需要创建一个 <script> 标签&#xff0c;并将其 src 属性设置为跨域请求的 URL&#xff0c;并添加一个 callback 参数。这个 callback 参数将包含一个函数…...

【机器学习实战入门】基于深度学习的乳腺癌分类

什么是深度学习&#xff1f; 作为对机器学习的一种深入方法&#xff0c;深度学习受到了人类大脑和其生物神经网络的启发。它包括深层神经网络、递归神经网络、卷积神经网络和深度信念网络等架构&#xff0c;这些架构由多层组成&#xff0c;数据必须通过这些层才能最终产生输出。…...

Flowable 管理各业务流程:流程设计器 (获取流程模型 XML)、流程部署、启动流程、流程审批、流程挂起和激活、任务分配

文章目录 引言I 表结构主要表前缀及其用途核心表II 流程设计器(Flowable BPMN模型编辑器插件)Flowable-UIvue插件III 流程部署部署步骤例子:根据流程模型ID部署IV 启动流程启动步骤ACT_RE_PROCDEF:流程定义相关信息例子:根据流程 ID 启动流程V 流程审批审批步骤Flowable 审…...

Kafka 日志存储 — 日志索引

每个日志分段文件对应两个索引文件&#xff1a;偏移量索引文件用来建立消息偏移量到物理地址之间的映射&#xff1b;时间戳索引文件根据指定的时间戳来查找对应的偏移量信息。 1 日志索引 Kafka的索引文件以稀疏索引的方式构造消息的索引。它并不保证每个消息在索引文件中都有…...

【大模型】ChatGPT 高效处理图片技巧使用详解

目录 一、前言 二、ChatGPT 4 图片处理介绍 2.1 ChatGPT 4 图片处理概述 2.1.1 图像识别与分类 2.1.2 图像搜索 2.1.3 图像生成 2.1.4 多模态理解 2.1.5 细粒度图像识别 2.1.6 生成式图像任务处理 2.1.7 图像与文本互动 2.2 ChatGPT 4 图片处理应用场景 三、文生图操…...

OceanBase 社区年度之星专访:北控水务纪晓东,社区铁杆开发者

编者按&#xff1a;作为开源数据库&#xff0c;社区的发展和持续进步&#xff0c;来自于每一位贡献者的智慧与支持。2024年度&#xff0c;OceanBase社区特别设立了“年度之星”奖&#xff0c;以表彰和感谢在过去一年中&#xff0c;为社区发展作出突出贡献的朋友。 今日&#x…...

Docker 实现MySQL 主从复制

一、拉取镜像 docker pull mysql:5.7相关命令&#xff1a; 查看镜像&#xff1a;docker images 二、启动镜像 启动mysql01、02容器&#xff1a; docker run -d -p 3310:3306 -v /root/mysql/node-1/config:/etc/mysql/ -v /root/mysql/node-1/data:/var/lib/mysql -e MYS…...

农业农村大数据应用场景|珈和科技“数字乡村一张图”解决方案

近年来&#xff0c;珈和科技持续深耕农业领域&#xff0c;聚焦时空数据服务智慧农业。 珈和利用遥感大数据、云计算、移动互联网、物联网、人工智能等先进技术&#xff0c;搭建“天空地一体化”监测体系&#xff0c;并创新建设了150的全球领先算法模型&#xff0c;广泛应用于高…...

doris 2.1 Queries Acceleration-Hints 学习笔记

1 Hint Classification 1.1 Leading Hint:Specifies the join order according to the order provided in the leading hint. 1.2 Ordered Hint:A specific type of leading hint that specifies the join order as the original text sequence. 1.3 Distribute Hint:Speci…...

STM32 FreeRTOS 任务挂起和恢复---实验

实验目标 学会vTaskSuspend( )、vTaskResume( ) 任务挂起与恢复相关API函数使用&#xff1a; start_task:用来创建其他的三个任务。 task1&#xff1a;实现LED1每500ms闪烁一次。 task2&#xff1a;实现LED2每500ms闪烁一次。 task3&#xff1a;判断按键按下逻辑&#xff0c;KE…...

Ubuntu 24.04 LTS 通过 docker desktop 安装 seafile 搭建个人网盘

准备 Ubuntu 24.04 LTSUbuntu 空闲硬盘挂载Ubuntu 安装 Docker Desktop [我的Ubuntu服务器折腾集](https://blog.csdn.net/jh1513/article/details/145222679。 安装 seafile 参考资料 Docker安装 Seafile OnlyOffice 并配置OnlyOffice到Seafile&#xff0c;实现在线编辑…...

Open3D 最小二乘拟合平面(直接求解法)【2025最新版】

目录 一、算法原理二、代码实现三、结果展示本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 博客长期更新,本文最近更新时间为:2025年1月18日。 一、算法原理 平面方程的一般表达式为:...

【CC2640R2F】香瓜CC2640R2F之SPI读写W25Q80

本文最后修改时间&#xff1a;2022年01月08日 10:45 一、本节简介 本节以simple_peripheral工程为例&#xff0c;介绍如何使用SPI读写W25Q80&#xff08;外部flash&#xff09;。 二、实验平台 1&#xff09;CC2640R2F平台 ①协议栈版本&#xff1a;CC2640R2 SDK v1.40.00.4…...

探秘Shortest与Stagehand:开启高效测试与自动化新篇

探秘Shortest与Stagehand&#xff1a;开启高效测试与自动化新篇 在数字化浪潮的推动下&#xff0c;网页自动化工具如同繁星般涌现&#xff0c;为众多行业带来了效率的变革。在这些工具中&#xff0c;Shortest和Stagehand凭借其出色的表现&#xff0c;成为了众多开发者、测试人…...

用C语言解决‘换硬币’问题?我来教你如何调试和验证你的循环逻辑

用C语言解决‘换硬币’问题&#xff1f;我来教你如何调试和验证你的循环逻辑 当你第一次面对"换硬币"这类组合问题时&#xff0c;那种既兴奋又困惑的感觉我至今记忆犹新。作为C语言初学者&#xff0c;理解多重循环的运作机制就像在迷宫中寻找出口——每次你以为找到了…...

Tftpd32/Tftpd64不止是TFTP!手把手教你玩转它的DHCP和Syslog服务器功能

Tftpd32/Tftpd64&#xff1a;解锁DHCP与Syslog服务的隐藏潜力当大多数人提起Tftpd32/Tftpd64时&#xff0c;第一反应往往是它作为TFTP服务器的功能。这款轻量级工具确实在文件传输领域表现出色&#xff0c;但它的能力远不止于此。今天&#xff0c;我们将深入探索这款软件中两个…...

2026年,本地精准营销高性价比服务商来袭,你还不了解一下?

在本地商业竞争日益激烈的2026年&#xff0c;实体店面临着诸多挑战&#xff0c;引流难、成本高、复购率低等问题困扰着众多商家。而中粤&#xff08;广州&#xff09;信息科技有限公司作为本地精准营销的高性价比服务商&#xff0c;正以其独特的优势和卓越的服务&#xff0c;为…...

【DeepSeek开源协议识别权威指南】:20年合规专家亲授3大协议陷阱与5步精准识别法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek开源协议识别的底层逻辑与合规价值 DeepSeek系列模型&#xff08;如DeepSeek-V2、DeepSeek-Coder&#xff09;虽以“开源”名义发布&#xff0c;但其实际许可状态需通过结构化协议解析才能准确…...

BiliRoamingX:彻底解决B站体验限制的完整增强方案

BiliRoamingX&#xff1a;彻底解决B站体验限制的完整增强方案 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations and patches powered by ReVanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations 你是否曾为B站的内容区…...

用Azure Kinect DK和Body Tracking SDK,5分钟实现一个实时人体骨骼点检测Demo(C++版)

5分钟实战&#xff1a;用Azure Kinect DK实现实时人体骨骼点追踪&#xff08;C版&#xff09; 当你第一次拿到Azure Kinect DK时&#xff0c;最令人兴奋的莫过于它强大的人体追踪能力。这款深度相机不仅能捕捉高清彩色图像&#xff0c;更能通过AI算法实时重建人体骨骼关节点。本…...

操作符从浅入深的讲解

1. 操作符的分类 2. ⼆进制和进制转换 3. 原码、反码、补码 4. 移位操作符 5. 位操作符&#xff1a;&、|、^、~ 6. 单⽬操作符 7. 逗号表达式 8. 下标访问[]、函数调⽤() 9. 结构成员访问操作符 10. 操作符的属性&#xff1a;优先级、结合性 11. 表达式求值1.操作符的分类以…...

人工智能的伦理与安全:这3个问题,软件测试从业者必须重视

随着大语言模型、生成式AI的爆发式落地&#xff0c;人工智能已经从实验室走向千行百业的生产场景&#xff0c;深刻改变着软件开发与交付的逻辑。对于直接把控产品质量关口的软件测试从业者来说&#xff0c;我们的职责早已不再是单纯验证功能可用性、排查性能bug那么简单——AI系…...

机器学习的最佳实践:这7个原则让你的模型更稳定

对于软件测试从业者而言&#xff0c;机器学习技术正在快速融入测试流程&#xff1a;从自动化测试用例生成、缺陷预测到测试环境异常检测&#xff0c;机器学习模型的稳定性直接决定了测试结果的可靠性——如果模型在测试环境波动、输入数据变化时性能骤降&#xff0c;不仅无法提…...

基于Atmega 1284P的16位复古计算器:硬件设计与软件实现全解析

1. 项目概述与核心思路最近在整理工作室时&#xff0c;翻出了一堆老旧的7段数码管和矩阵键盘&#xff0c;看着这些充满复古气息的元件&#xff0c;一个想法冒了出来&#xff1a;为什么不自己动手做一台复古风格的计算器呢&#xff1f;不是那种用液晶屏显示的现代计算器&#xf…...