ADC--模拟量转换成数字量

目录

一、ADC硬件组成七大部分:

二、单次转换,连续转换,不连续采样模式,扫描模式区别

1、举例(5种组合情况)

2、模拟看门狗中断的作用:

三、MCU使用ADC步骤


一、ADC硬件组成七大部分:

①输入电压:

(1) ADC 输入范围 VREF–≤VIN≤VREF+

② 输入通道

(1) ADC 的输入通道, ADC1 有 16 个外部通道和 3 个内部通道,而 ADC2和 ADC3 只有有 16 个外部通道。 ADC1 的外部通道是通道 17、通道 18 和通道 19,分别连接到内部温度传感器、内部 Vrefint和 Vbat,具体的外部通道对应的GPIO引脚,要看对应的芯片手册,比如STM32F407的ADC通道:

③ 转换顺序

(1)规则组:每个外部通道,都可以放入规则组的任何序列,由SQR1、 SQR2 和 SQR3 寄存器决定,转换顺序由序列组决定,从小到大,序列组的长度由SQL 寄存器决定。

(2)注入组

转换顺序由序列组决定,从小到大;但注入组可以中断到规则组先转换。

④ 触发源

(1)软件触发(常用):通过写 ADC_CR2 寄存器的 ADON 这个位来控制,写 1 就开始转换,写 0 就停止转换,

(2)硬件触发:定时器事件,外部中断。

⑤ 转换时间

(1) STM32F407 的 ADC 总转换时间的计算公式如下: 

TCONV = 采样时间(至少三个时钟周期) + 12 个周期(逐次逼近型转换决定)

ADC的时钟频率:不高于36M Hz

(2)由于ADC在STM32中是挂载在APB2总线上的,所以ADC得时钟是由PCLK2(72MHz)经过分频得到的。

⑥ 数据寄存器

ADC 转换完成后的数据输出寄存器。根据转换组的不同,规则组的完成转换的数据输出到ADC_DR 寄存器,注入组的完成转换的数据输出到 ADC_JDRx 寄存器:

(1)规则组:16个规则通道共用一个ADC_DR 寄存器保存转换结果,所以多通道转换要用扫描模式,并且要开DMA保存转换结果。

(2)注入组:4个注入通道分别对应四个ADC_JDRx 寄存器保存转换结果。

⑦ 中断

(1)规则和注入组转换结束时能产生中断;

(2)当模拟看门狗状态位被设置时也能产生中断 ;

(3)规则和注入组转换结束时还可以产生 DMA 请求,把转换好的数据存储在内存里面,防止读取不及时数据被覆盖。

二、单次转换,连续转换,不连续采样模式,扫描模式区别

1、举例(5种组合情况)

用ADC1 规则通道的顺序为CH0,CH1,CH2,CH3,

(1) 在单次转换模式下,不启动SCAN模式

启动ADC1,则

a、开始转换CH0(ADC_SQR的第一通道)

b、转换完成后停止,等待ADC的下一次启动,继续从第一步开始转换

(2) 在单次转换模式下,启动SCAN模式

启动ADC1,则

a、 开始转换CH0

b、转换完成后自动开始转换CH1

c、转换完成后自动开始转换CH2

d、 转换完成后自动开始转换CH3

e、转换完成后停止,等待ADC的下一次启动下一次ADC启动后从第一步开始转换

(3) 在连续转换模式下,不启动SCAN模式

启动ADC1,则

a、开始转换CH0(ADC_SQR的第一通道)

b、转换完成后回到第一步,继续转换

(4) 在连续转换模式下,启动SCAN模式下:

启动ADC1,则

a、开始转换CH0

b、转换完成后自动开始转换CH1

c、转换完成后自动开始转换CH2

d、转换完成后自动开始转换CH3

e、转换完成后返回第一步,继续转换

(5)不连续采样模式举例:

规则组:

ADC多通道必须开启扫描模式此模式必须搭配DMA功能才能实现ADC的数据处理,注意;另外DMA只能用于ADC的规则序列,不能用于注入序列

2、模拟看门狗中断的作用:

(1)掉电检测

(2)程序可以基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。

(3)模拟看门狗可以设置为多通道和单通道模式,即可以通过设置相应的寄存器位来选择某一通道或多通道打开模拟看门狗检测:

4、多通道扫描模式开启DMA?

三、MCU使用ADC步骤

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

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

相关文章

Java数字孪生智慧工地数据大屏APP项目源码

目录 智慧工地云平台核心功能 1.劳务管理 2.视频监控 3.安全教育 4.进度管理 5.环境监测 6.塔吊监控 7.升降机监控 8.工地广播 9.深基坑高支模 10.AI识别 11.安全质量 智慧工地建设的价值和意义 危大工程管理 智慧工地聚焦施工现场一线生产活动,利用物…

使用Python生成二维码的完整指南

无边落木萧萧下,不如跟着可莉一起游~ 可莉将这篇博客收录在了:《Python》 可莉推荐的优质博主首页:Kevin ’ s blog 本文将介绍如何使用Python中的qrcode库来生成二维码。通过简单的代码示例和详细解释,读者将学习如何在Python中轻…

数据结构-双指针法

介绍 双指针法是一种可以在O(n)时间复杂度内解决数组、链表、字符串等数据结构相关的问题的方法。核心思想为使用两个指针在不同位置遍历数组或链表,从而实现特定操作。 常见的双指针法有 1.快慢指针:快指针每次移动两步&…

单测的思路

文章目录 单测的分类方法的单测生成工具的对比生成步骤 接口的单测mock步骤部分依赖mock的方式 场景的单测参考 单测的分类 单元测试(Unit Testing)是一种软件开发中的测试方法,它的主要目的是确保软件中的最小可测试单元(通常是…

(07)Hive——窗口函数详解

一、 窗口函数知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路: LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowing…

英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意

此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文&a…

红队笔记Day3-->隧道上线不出网机器

昨天讲了通过代理的形式(端口转发)实现了上线不出网的机器,那么今天就来讲一下如何通过隧道上线不出网机器 目录 1.网络拓扑 2.开始做隧道?No!!! 3.icmp隧道 4.HTTP隧道 5.SSH隧道 1.什么…

探索未来科技前沿:深度学习的进展与应用

深度学习的进展 摘要:深度学习作为人工智能领域的重要分支,近年来取得了巨大的进展,并在各个领域展现出惊人的应用潜力。本文将介绍深度学习的发展历程、技术原理以及在图像识别、自然语言处理等领域的应用,展望深度学习在未来的…

RunnerGo:UI自动化测试神器!

UI自动化测试已经成为现代软件开发过程中不可或缺的一部分。它能够提供诸多优势,包括提高测试效率、减少人力成本、提升软件质量等。同时,可视化工具为UI自动化测试带来了更多便利和灵活性。RunnerGo近期上线脚本录制器,根据你的测试操作直接…

React 更改程序入口点(index.js文件位置变更)

食用前提示:本文基于已经快速配置好的React环境而作,配置React环境详见拙作:React环境配置-CSDN博客~ 一、了解默认入口点 使用create-react-app快速搭建react环境后,npm start启动程序的默认入口点为/src/index(即src目录下的ind…

【Prometheus】组件介绍-工作流程-部署模式-数据类型-监控

基于Prometheus和K8S构建智能化告警系统 一、Prometheus简介二、Prometheus特点于样本2.1、特点2.2、样本 三、Prometheus组件介绍四、Prometheus工作流程五、Prometheus的几种部署模式5.1、基本高可用模式5.2、基本高可用远程存储5.3、基本高可用远程存储联邦集群 六、Prometh…

ESP32工程中CMake使用及加入第三方SDK库文件

1、ESP32工程结构 本文中使用的是乐鑫官方推出的ESP-IDF v5.1对ESP32S3设备开发,并非是Arduino、Micro-python等第三方工具开发。在ESP-IDF框架中,乐鑫官方已经将CMake 和 Ninja 编译构建工具集成到了ESP-IDF中。 ESP-IDF 即乐鑫物联网开发框架&#xff…

卷积神经网络的基本结构

卷积神经网络的基本结构 与传统的全连接神经网络一样,卷积神经网络依然是一个层级网络,只不过层的功能和形式发生了变化。 典型的CNN结构包括: 数据输入层(Input Layer)卷积层(Convolutional Layer&#x…

第11章 GUI

11.1 Swing概述 Swing是Java语言开发图形化界面的一个工具包。它以抽象窗口工具包(AWT)为基础,使跨平台应用程序可以使用可插拔的外观风格。Swing拥有丰富的库和组件,使用非常灵活,开发人员只用很少的代码就可以创建出…

力扣OJ题——旋转数组

题目:189.旋转数组 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数 思路一: 1.每次挪动旋转1位(用tmp将最后一位存起来,其余所有数据向后移,然后将tmp放在第一个位…

Python编程中的异常处理

什么是异常? 程序错误(errors)有时也被称为程序异常(exceptions),这是每个编程人员都会经常遇到的问题。在过去,当遇到这类情况时,程序会终止执行并显示错误信息,通常是…

Qt:Qt3个窗口类的区别、VS与QT项目转换

一、Qt3个窗口类的区别 QMainWindow:包含菜单栏、工具栏、状态栏 QWidget:普通的一个窗口,什么也不包括 QDialog:对话框,常用来做登录窗口、弹出窗口(例如设置页面) QDialog实现简易登录界面…

力扣经典题:环形链表的检测与返回

1.值得背的题 /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode *detectCycle(struct ListNode *head) {struct ListNode*fasthead;struct ListNode*slowhead;while(fast!NULL&&fast->…

LCR 127. 跳跃训练【简单】

LCR 127. 跳跃训练 题目描述: 今天的有氧运动训练内容是在一个长条形的平台上跳跃。平台有 num 个小格子,每次可以选择跳 一个格子 或者 两个格子。请返回在训练过程中,学员们共有多少种不同的跳跃方式。 结果可能过大,因此结果…

spring boot自动装配

第一步需要在pom.xml文件指定需要导入的坐标 要是没有自动提示需要检查maven有没有 实现代码 /*springboot第三方自动配置实现方法 * 什么是自动配置 自动配置就是springboot启动自动加载的类不需要在手动的控制反转自动的加入bean中 * * *//*第一种方案包扫描 不推荐因为繁琐…