stm32入门教程--ADC模拟-数字转换器

ADC(Analog-Digital Converter)模拟-数字转换器

ADC可以将引脚上连续变化的模拟电压转你换位内存中存储的数字变量,建立模拟电路到数字电路的桥梁。

12位逐次逼近型ADC,1us转换时间

输入电压范围:0-3.3V转换结果范围:0-4095

18个输入通道,可以测量16个外部和2个内部信号源

规则组和注入组两个转换单元

模拟看门狗自动检测输入电压范围

STM32F1系列的ADC介绍

        STM32F1的ADC为12位ADC,是一种逐次逼近型模拟数字转换器。它有多达18个通道,可测量16个外部和2个内部 信号源。各通道的A/D转换可以单次、连续、扫描或间断模式执行。ADC的结果可以左对齐或右 对齐方式存储在16位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 ADC的输入时钟不得超过14MHz,它是由PCLK2经分频产生。

ADC转换时间:

STM32F103xx增强型产品:时钟为56MHz时为1us(时钟为72MHz为1.17us)

STM32F101xx基本型产品:时钟为28MHz时为1us(时钟为36MHz为1.55us)

STM32F102xxUSB型产品:时钟为48MHz时为1.2us

STM32F105xx和STM32F107xx产品:时钟为56Mhz时为1us(时钟为72MHz为1.17us)

工作原理

STM32的ADC模块通常基于逐次逼近寄存器(SAR)架构,其工作原理包括采样、转换和数据存储三个阶段。在采样阶段,ADC将模拟输入信号保持在采样电容上,以稳定输入电压。在转换阶段,ADC通过逐次逼近算法,将模拟电压与参考电压进行比较,生成相应的数字值。最后,在数据存储阶段,转换完成的数字值被存储在数据寄存器中,供CPU读取或通过DMA(Direct Memory Access,直接存储器访问)传输到内存。

关键参数

  1. 分辨率:通常以位(bit)表示,决定了数字输出的精度。例如,12位ADC可以将输入电压分辨为4096(2¹²)个不同的数字值。
  2. 采样率:单位时间内采样的次数,决定了ADC能够捕捉的信号变化速度。
  3. 输入通道数:ADC可以同时采集的模拟输入信号数量。STM32的ADC模块支持多个输入通道,用户可以通过配置选择不同的输入源。
  4. 转换精度:包括信噪比(SNR)、总谐波失真(THD)等指标,反映ADC的性能。
  5. 功耗:ADC在工作时消耗的电能,影响整体系统的能效。

工作模式

STM32的ADC支持多种工作模式,以适应不同的应用需求:

  1. 单次转换模式:每次触发只进行一次ADC转换,适用于不频繁采样的应用。
  2. 连续转换模式:持续不断地进行ADC转换,适用于需要连续数据流的应用,如音频采集。
  3. 扫描模式:在单次或连续转换模式下,依次转换多个通道,适用于多通道数据采集。
  4. 注入转换模式:用于优先级更高的ADC转换任务,通常与常规转换并行工作。
  5. 双ADC模式:多个ADC模块协同工作,提高采样速度和数据精度。

配置步骤

在STM32中配置ADC通常包括以下几个步骤:

  1. 启用相应的时钟信号。
  2. 将ADC输入引脚配置为模拟模式,避免数字干扰。
  3. 使用HAL库或其他库函数配置ADC的基本参数,如分辨率、采样时间、扫描模式等。
  4. 配置ADC通道,选择要转换的ADC通道,并设置相应的采样时间。
  5. 根据工作模式选择不同的启动方法,如单次转换或连续转换。
  6. 读取转换结果,可以使用DMA通道将转换结果直接存储到内存,也可以直接读取寄存器中的值。

实际应用

STM32的ADC模块在传感器数据采集、温度监测、音频信号处理等方面具有广泛应用。例如,在温度监测系统中,可以通过ADC采集温度传感器的模拟信号,并将其转换为数字信号进行处理和显示。在音频信号处理中,ADC可以将模拟音频信号转换为数字音频信号,进行后续的数字信号处理和分析。

 

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

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

相关文章

Pyramidal Flow使用指南:快手、北大、北邮,开源可免费商用视频生成模型,快速上手教程

什么是 Pyramidal Flow? Pyramidal Flow 是由快手科技、北京大学和北京邮电大学联合推出的开源视频生成模型,它是完全开源的,发布在 MIT 许可证下,允许商业使用、修改和再分发。该模型能够通过文本描述生成最高10秒、分辨率为128…

Docker搭建开源Web云桌面操作系统Puter和DaedalOS

文章目录 Puter 操作系统说明基于 Docker 启动 Puter 操作系统拉取镜像运行容器基于 Docker-Compose 启动 Puter操作系统创建目录编写docker-compose.yml运行在本地直接运行puter操作系统puter界面截图puter个人使用总结构建自己的Puter镜像daedalos基于web的操作系统说明技术特…

Embedding 模型和Model 批量推理和多卡部署

批量推理 多卡部署 使用huggingface 【AI大模型】Transformers大模型库(七):单机多卡推理之device_map_transformers多卡推理-CSDN博客 首先用 CUDA_VISIBLE_DEVICES1,2,3 python 或者os.environ["CUDA_VISIBLE_DEVICES"] &q…

风力发电场的“守护神”

摘要:作为清洁能源之一,风力发电场近几年装机容量快速增长。8月17日,国家能源局发布1-7月份全国电力工业统计数据。截至7月底,全国累计发电装机容量约27.4亿千瓦,同比增长11.5%。其中,太阳能发电装机容量约…

【Flutter】基础入门:Widgets

在 Flutter 中,Widget 是应用程序构建块的基础。几乎所有的对象都是一个 Widget,不论是显示在屏幕上的 UI 元素,还是一些功能性组件(例如用于手势检测的 GestureDetector,或用于传递应用主题数据的 Theme)&…

TCP simultaneous open测试

源代码 /*************************************************************************> File Name: common.h> Author: hsz> Brief:> Created Time: 2024年10月23日 星期三 09时47分51秒**********************************************************************…

转录组上游分析流程(三)

环境部署——数据下载——查看数据(非质控)——数据质控——数据过滤(过滤低质量数据) 测序得到的原始序列含有接头序列和低质量序列,为了保证信息分析的准确性,需要对原始数据进行质量控制,得到高质量序列(Clean Reads),原始序列…

Linux系统块存储子系统分析记录

1 Linux存储栈 通过网址Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en,可以获取多个linux内核版本下的存储栈概略图,下面是kernel-4.0的存储栈概略图: 2 存储接口、传输速度 和 协议 2.1 硬盘 《深入浅出SSD:固态存储核心…

(二十三)Java反射

1.反射概念 反射允许对成员变量,成员方法和构造方法的信息进行编程访问,通俗理解就是允许从类里面拿东西,用途有提示词等,如下所示都是通过反射实现的 所以,学习反射就是学习从字节码class文件中获取成员信息并且对其…

AndroidAppWidget相关

特殊情况记录 OPPO FIND N Android14 当桌面已经存在AppWidget实例,如果应用处于杀死状态下,此时再创建相同的AppWidget实例不会触发AppWidget的更新。 创建不同的AppWidget对应的实例时才会一下子触发多个AppWidget示例的更新。

stable diffusion WEBUI Brief summary

1,rembg(去除背景-》蒙版) import rembg from PIL import Image, ImageOps import numpy as np# 打开图像 input_path "./p_6258838.jpg" input_image Image.open(input_path)# 移除背景,得到带有透明背景的图像 output_image rembg.remove…

Markdown语法详解及常见的使用场景

Markdown语法详解 Markdown概念一、标题二、段落三、字体样式四、列表五、链接和图片六、代码八、分隔线九、引用十、删除线和下划线十一、脚注十二、任务列表十三、高级技巧十四、目录生成 Markdown的应用场景 Markdown概念 Markdown是一种轻量级标记语言,以其简洁…

利用大模型进行复杂决策制定:PlanRAG技术的研究

人工智能咨询培训老师叶梓 转载标明出处 有效的决策制定对于组织的成功至关重要。传统的决策支持系统虽然在数据分析和决策辅助方面取得了一定的进展,但在处理需要复杂数据分析的决策问题时仍显不足。为了解决这一问题,来自韩国高等科学技术院&#xff…

fpga系列 HDL: 竞争和冒险 01

卡诺图是一种逻辑化简工具,用来在布尔函数的最小项和形式中,找到冗余项并实现逻辑化简。也可用于HDL中竞争和冒险的判断。 最小项 任何一个逻辑函数都能化简为最小项的和的形式对于 n 个变量的布尔表达式,每个变量都必须以原变量&#xff0…

JVM的内存模型是什么,每个区域的作用是什么,以及面试题(含答案)

JVM(Java 虚拟机)内存模型定义了 Java 程序在运行时如何分配、管理和优化内存。JVM 内存模型主要分为几个关键区域,每个区域有特定的作用: JVM 内存模型 堆内存(Heap): 作用:用于存…

VS2022搭建FFMPEG + Opencv开发环境 + 如何打包项目让程序也能独立跑在其他人的电脑上?

VS2022搭建FFMPEG Opencv开发环境 如何打包项目让程序也能独立跑在其他人的电脑上? 前言 本文的名字应该是我所写过的博客当中最长的,但内容以精简且保证实用为原则! 正文 首先是ffmpeg 环境搭建流程如下: 在网上下载已经被…

Zabbix企业级分布式监控环境部署

“运筹帷幄之中,决胜千里之外”。在IT运维中,监控占据着重要的地位,按比例来算,说占30%一点也不为过。对IT运维工程师来说,构建一个真正可用的监控告警系统是一项艰巨的任务。在监控系统的开源软件中,可供选…

山东科技大学 PTA (数据结构)7-5 银行业务队列简单模拟

设某银行有A、B两个业务窗口,且处理业务的速度不一样,其中A窗口处理速度是B窗口的2倍 —— 即当A窗口每处理完2个顾客时,B窗口处理完1个顾客。给定到达银行的顾客序列,请按业务完成的顺序输出顾客序列。假定不考虑顾客先后到达的时…

基于模型划分的云边协同推理算法

摘要 在网络状态和任务需求的动态变化下,为减少模型推理时延和计算成本,在软件定义网络( Software Defined Network,SDN) 中提出了一种基于模型划分的云边协同推理算法。通过构建复杂度预测器分配任务执行环境,采用深度Q网络(Dee…

国产标准数字隔离器的未来---克里雅半导体

标准数字隔离器是电信号隔离技术的重要组成部分,近年来取得了重大进展。随着工业自动化、汽车电子和电信等行业对更高性能的需求不断增长,国内数字隔离器制造商正在稳步赶上全球标准。本文讨论了数字隔离器技术的新兴趋势、材料创新的影响,以…