STM32H750外设之ADC开关控制功能介绍

news2024/11/19 5:33:44

目录

概述

1 ADC开关控制介绍

2 开关控制功能流程

2.1 软件使能ADC 的流程

2.2 软件禁止 ADC 的流程

3  相关寄存器

3.1 ADCx_ISR

3.2 ADCx_CR

4 使能/禁止ADC流程图

​5 写入 ADC 控制位时的限制


概述

本文介绍STM32H750外设之ADC开关控制功能,该功能是应用STM32H750外设之ADC功能的基础,其他寄存器的配置参数行为和开关使能息息相关。

1 ADC开关控制介绍

要正确的使用STM32H750外设之ADC,必须了解其两个重要的寄存器的参数配置,ADC x 中断和状态寄存器 (ADCx_ISR)( x=1 到 3)和ADC x 控制寄存器 (ADCx_CR)( x=1 到 3)。其用于使能或者停止ADC转换数据功能,而其他寄存器配置参数也和这两个寄存器的配置位相关。

2 开关控制功能流程

2.1 软件使能ADC 的流程

step -1: 向 ADCx_ISR 寄存器中的 ADRDY 位写入“1”,将其清零。
step -2: 将 ADEN 置 1。
step -3: 等待,直至 ADRDY=1( ADRDY 会在 ADC 启动时间后置 1)。这可以使用关联中断实现(将 ADRDYIE 置 1)。
step -4: 向 ADCx_ISR 寄存器中的 ADRDY 位写入“1”,将其清零(可选)。

2.2 软件禁止 ADC 的流程

step -1:   检查 ADSTART 和 JADSTART 是否均为 0,以确保当前未执行任何转换。如有需要,可将 ADSTP 置 1,并将 JADSTP 置 1,随后等待至 ADSTP=0 且 JADSTP=0,以停止任何正在进行的常规转换和注入转换。
step -2:   将 ADDIS 置 1。
step -3:  如果应用要求,可等待 ADEN=0,直至模拟 ADC 已有效禁止( ADEN=0 后, ADDIS 将
自动复位)。

3  相关寄存器

3.1 ADCx_ISR

ADC x 中断和状态寄存器 (ADCx_ISR)( x=1 到 3)
 位 0 ADRDY: ADC READY
ADC 使能后(位 ADEN=1)以及 ADC 达到准备好接收转换请求的状态时,会通过硬件将该位置1
通过软件写入 1 可将该位清零。
0: ADC 未准备好开始转换(或标志事件已通过软件确认并清零)
1: ADC 已准备好开始转换

3.2 ADCx_CR

ADC x 控制寄存器 (ADCx_CR)( x=1 到 3)

位 0 ADEN: ADC 使能控制 (ADC enable control)
该位由软件置 1,用于使能 ADC。 ADRDY 标志置 1 后, ADC 将立即准备好运行。如果 ADC 已禁止,则执行 ADDIS 命令后,将通过硬件对该位清零
0:禁止 ADC(OFF 状态)。
1:写入 1 来使能 ADC。

位 1 ADDIS: ADC 禁止命令 (ADC disable command)
该位由软件置 1,用于禁止 ADC( ADDIS 命令)并使其进入掉电状态( OFF 状态)。ADC 已有效禁止后,会立即通过硬件将该位清零(此时也会通过硬件将 ADEN 清零)。
0:当前未执行 ADDIS 命令。
1:写入 1 可禁止 ADC。读取值为 1 表示正在执行 ADDIS 命令。

位 2 ADSTART: ADC 开始常规转换 (ADC start of regular conversion)
此位由软件置 1,用于开始 ADC 的常规通道转换。根据配置位 EXTEN 的值,可以立即开始转换
(软件触发配置),也可以在发生常规硬件触发事件后开始转换(硬件触发配置)。

该位通过硬件清零:
1)在单次转换模式下(CONT=0、 DISCEN=0),如果选择了软件触发 (EXTEN=0x0):出现常规转换序列结束 (EOS) 标志时清零。
2)在不连续转换模式下(CONT=0、 DISCEN=1),如果选择了软件触发 (EXTEN=0x0):出现转换结束(EOC) 标志时清零。
3)在所有其他情况下:执行完 ADSTP 命令后,由硬件将 ADSTP 位清零的同时清零。

0:当前未进行 ADC 常规转换。
1:写入 1 可开始常规转换。读取值为 1 表示 ADC 正在运行,最终会转换常规通道。

位 3 JADSTART: ADC 开始注入转换 (ADC start of injected conversion)
此位由软件置 1,用于开始 ADC 的注入通道转换。根据配置位 JEXTEN 的值,可以立即开始转换(软件触发配置),也可以在发生注入硬件触发事件后开始转换(硬件触发配置)。

该位通过硬件清零:
1)在单次转换模式下,如果选择了软件触发 (JEXTSEL=0x0):出现注入转换序列结束 (JEOS) 标志时清零。
2) 在所有情况下:执行完 JADSTP 命令后,由硬件将 JADSTP 位清零的同时清零。

0:当前未进行 ADC 注入转换。
1:写入 1 可开始注入转换。读取值为 1 表示 ADC 正在运行,最终会转换注入通道

位 4 ADSTP: ADC 停止常规转换命令 (ADC stop of regular conversion command)
该位由软件置 1,用于停止和丢弃正在进行的常规转换( ADSTP 命令)。当转换已有效丢弃、并且可重新配置 ADC 常规序列和触发时,会通过硬件将该位清零。随后, ADC会准备好接收新的开始常规转换命令( ADSTART 命令)。

0:当前未执行 ADC 停止常规转换命令
1:写入 1 可停止正在进行的常规转换。读取值为 1 表示正在执行 ADSTP 命令。

位 5 JADSTP: ADC 停止注入转换命令 (ADC stop of injected conversion command)
位由软件置 1,用于停止和丢弃正在进行的注入转换( JADSTP 命令)。当转换已有效丢弃、并且可重新配置 ADC 注入序列和触发时,会通过硬件将该位清零。随后, ADC会准备好接收新的开始注入转换命令( JADSTART 命令)。

0:当前未执行 ADC 停止注入转换命令
1:写入 1 可停止正在进行的注入转换。读取值为 1 表示正在执行 ADSTP 命令。
 

4 使能/禁止ADC流程图

5 写入 ADC 控制位时的限制 

仅当 ADC 已禁止(ADEN 必须等于 0)时,软件才可通过写入 RCC 控制位的方式配置和使能ADC 时钟(请参见 RCC 部分)、 ADCx_DIFSEL 寄存器中的控制位 DIFSEL、 ADCx_CCR 寄
存器、以及 ADCx_CR 寄存器中的控制位 ADCAL 和 ADEN。

只有在 ADC 已使能、 并且没有待处理的禁止 ADC 的请求( ADEN 必须等于 1 且 ADDIS 必
须等于 0
)时,才允许软件向 ADCx_CR 寄存器的控制位 ADSTART、 JADSTART 和 ADDIS
执行写操作。

对于 ADCx_CFGR、 ADCx_SMPRy、 ADCx_TRy、 ADCx_SQRy、 ADCx_JDRy、 ADCx_OFRy和 ADCx_IER 寄存器所有其他控制位:

1)对于与常规转换配置相关的控制位,仅当 ADC 已使能 (ADEN=1) 且未进行常规转换
( ADSTART 必须等于 0)时,才允许软件对这些位执行写操作。

2)对于与注入转换配置相关的控制位,仅当 ADC 已使能 (ADEN=1) 且未进行注入转换
( JADSTART 必须等于 0)时,才允许软件对这些位执行写操作。

仅当 ADC 已使能(最终会进行转换)且没有待处理的禁止 ADC 的请求( ADSTART 或
JADSTART 必须等于 1 且 ADDIS 必须等于 0)时,软件才可以对 ADCx_CR 寄存器中的
ADSTP 或 JADSTP 控制位执行写操作。

如果 ADC 已使能 (ADEN=1),软件可随时对 ADCx_JSQR 寄存器执行写操作。

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

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

相关文章

禅道项目管理系统身份认证绕过漏洞

禅道项目管理系统身份认证绕过漏洞 1.漏洞描述 禅道项目管理软件是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理、计划发布等功能,完整覆盖了研发项目管理的核心流程。 禅道项目管理系统…

每日OJ题_DFS回溯剪枝⑧_力扣494. 目标和

目录 力扣494. 目标和 解析代码(path设置成全局) 解析代码(path设置全局) 力扣494. 目标和 494. 目标和 难度 中等 给你一个非负整数数组 nums 和一个整数 target 。 向数组中的每个整数前添加 或 - ,然后串联…

“无媒体,不活动”,这句话怎么理解?

传媒如春雨,润物细无声,大家好,我是51媒体网胡老师。 “无媒体,不活动”通常指的是在现代社会中,媒体对于各种活动,尤其是公共活动和事件的推广、宣传和影响力是至关重要的。它强调了媒体在塑造公众意识、…

【Redis 开发】(Feed流的模式,GEO数据结构,BitMap,HyperLogLog)

Redis FeedTimeline GEOBitMapHyperLogLog Feed Feed流产品有两种常见模式: Timeline:不做内容筛选,简单的按照内容发布时间排序,常用于好友或关注。例如朋友圈 优点:信息全面,不会有缺失。并且实现也相对简单 缺点:信息噪音较多&#xff0c…

池化整合多元数据库,zData X 一体机助力证券公司IT基础架构革新

引言 近期,云和恩墨 zData X 多元数据库一体机(以下简称 zData X)在某证券公司的OA、短信和CRM业务系统中成功上线,标志着其IT基础架构完成从集中式存储向池化高性能分布式存储的转变。zData X 成功整合了该证券公司使用的达梦、O…

【VBA】获取指定目录下的Excel文件,并合并所有excel中的内容。

1.新建一个excel表格。并创建两个Sheet,名字分别命名为FileList 和 All information。 2.按ALTF11进入 VBA编程模块,插入模块。 3.将如下 第五部分代码复制到模块中。 点击运行即可,然后就能提取指定目录下的所有excel文件信息并合并到一起…

2021东北四省赛补题/个人题解

Dashboard - The 15th Chinese Northeast Collegiate Programming Contest - Codeforces I 模拟 #include <bits/stdc.h> using i64 long long; using namespace std; #define int long long int mp[8] {0, 7, 27, 41, 49, 63, 78, 108}; void solve() {int n; cin …

如何有效的将丢失的mfc140u.dll修复,几种mfc140u.dll丢失的解决方法

当你在运行某个程序或应用程序时&#xff0c;突然遭遇到mfc140u.dll丢失的错误提示&#xff0c;这可能会对你的电脑运行产生一些不利影响。但是&#xff0c;不要担心&#xff0c;以下是一套详细的mfc140u.dll丢失的解决方法。 mfc140u.dll缺失问题的详细解决步骤 步骤1&#x…

Atcoder Beginner Contest351 A-E Solution题解

文章目录 [A - The bottom of the ninth](https://atcoder.jp/contests/abc351/tasks/abc351_a)[B - Spot the Difference ](https://atcoder.jp/contests/abc351/tasks/abc351_b)[D - Grid and Magnet](https://atcoder.jp/contests/abc351/tasks/abc351_d)E Note&#xff1a;…

盲人地图使用的革新体验:助力视障人士独立、安全出行

在我们日常生活中&#xff0c;地图导航已经成为不可或缺的出行工具。而对于盲人群体来说&#xff0c;盲人地图使用这一课题的重要性不言而喻&#xff0c;它不仅关乎他们的出行便利性&#xff0c;更是他们追求生活独立与品质的重要一环。 近年来&#xff0c;一款名为蝙蝠…

《HCIP-openEuler实验指导手册》1.7 Apache虚拟主机配置

知识点 配置步骤 需求 域名访问目录test1.com/home/source/test1test2.com/home/source/test2test3.com/home/source/test3 创建配置文件 touch /etc/httpd/conf.d/vhost.conf vim /etc/httpd/conf.d/vhost.conf文件内容如下 <VirtualHost *.81> ServerName test1.c…

python中如何用matplotlib写雷达图

#代码 import numpy as np # import matplotlib as plt # from matplotlib import pyplot as plt import matplotlib.pyplot as pltplt.rcParams[font.sans-serif].insert(0, SimHei) plt.rcParams[axes.unicode_minus] Falselabels np.array([速度, 力量, 经验, 防守, 发球…

AtCoder Beginner Contest 351 G. Hash on Tree(树剖维护动态dp 口胡题解)

题目 n(n<2e5)个点&#xff0c;给定一个长为a的初始权值数组&#xff0c; 以1为根有根树&#xff0c; 树哈希值f计算如下&#xff1a; &#xff08;1&#xff09;如果一个点u是叶子节点&#xff0c;则f[u]a[u] &#xff08;2&#xff09;否则&#xff0c; q(q<2e5)次…

【C++】从零开始认识继承

送给大家一句话&#xff1a; 其实我们每个人的生活都是一个世界&#xff0c;即使最平凡的人也要为他生活的那个世界而奋斗。 – 路遥 《平凡的世界》 ✩◝(◍⌣̎◍)◜✩✩◝(◍⌣̎◍)◜✩✩◝(◍⌣̎◍)◜✩ ✩◝(◍⌣̎◍)◜✩✩◝(◍⌣̎◍)◜✩✩◝(◍⌣̎◍)◜✩ ✩◝(◍…

详解如何品味品深茶的精髓

在众多的茶品牌中&#xff0c;品深茶以其独特的韵味和深厚的文化底蕴&#xff0c;赢得了众多茶友的喜爱。今天&#xff0c;让我们一同探寻品深茶的精髓&#xff0c;品味其独特的魅力。 品深茶&#xff0c;源自中国传统茶文化的精髓&#xff0c;承载着世代茶人的智慧与匠心。这…

linux kernel内存泄漏检测工具之slub debug

一、背景 slub debug 是一个debug集&#xff0c;聚焦于kmem_cache 分配机制的slub内存&#xff08;比如kmalloc&#xff09;&#xff0c;这部分内存在内核中使用最频繁&#xff0c;slub debug其中有相当部分是用来处理内存踩踏&#xff0c;内存use after free 等异常的&#x…

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器(Http板块)

【项目】仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器&#xff08;Http板块&#xff09; 一、思路图二、Util板块1、Splite板块&#xff08;分词&#xff09;&#xff08;1&#xff09;代码&#xff08;2&#xff09;测试及测试结果i、第一种测试ii、第二种…

PotatoPie 4.0 实验教程(29) —— FPGA实现摄像头图像均值滤波处理

图像的均值滤波简介 图像均值滤波处理是一种常见的图像处理技术&#xff0c;用于降低图像中噪声的影响并平滑图像。该方法通过在图像中滑动一个固定大小的窗口&#xff08;通常是一个正方形或矩形&#xff09;&#xff0c;将窗口中所有像素的值取平均来计算窗口中心像素的新值…

GateWay具体的使用之全链路跟踪TraceId日志

1.创建全局过滤器&#xff0c;在请求头上带入traceId参数&#xff0c;穿透到下游服务. package com.by.filter;import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.jwt.JWTValidator;…

【Kotlin】Channel简介

1 前言 Channel 是一个并发安全的阻塞队列&#xff0c;可以通过 send 函数往队列中塞入数据&#xff0c;通过 receive 函数从队列中取出数据。 当队列被塞满时&#xff0c;send 函数将被挂起&#xff0c;直到队列有空闲缓存&#xff1b;当队列空闲时&#xff0c;receive 函数将…