1. ADC硬件电路

ADC的硬件电路主要由输入电路,触发信号电路,数据寄存器电路,中断电路还有数据总线这及部分构成。

输入信号通道ADC的通道输入到转换器,每个ADC有多达18个通道,可测量16个外部和2个内部信号源,温度传感器和通道ADC1_IN16相连接,内部参照电压VREFINTADC1_IN17相连接。可以按注入或规则通道对这两个内部通道进行转换。 温度传感器和VREFINT只能出现在主ADC1中。

其中触发限号电路又可以分为ADC1,ADC2构成的一部分和ADC3构成的一部分构成,主要就分为图中2、3两部分,ADC1和ADC2的触发信号是相同的,但是ADC3的触发信号与ADC1,ADC2不同,所以可以将他们两个分开。

模拟至数字转换器电路和数据寄存器电路可以看成同一个电路,其中又可以分为规则组和注入组,注入组有4个数据寄存器,也就是可以同时转换4个输入信号,而规则组只有1个数据寄存器,也就是在同一时间,规则组只能转换一个数据,所以在所以规则组转换模拟信号时,要么只能转换一个输入通道的信号,要么就是配合DMA实现多通道的数据采样。

还有ADC的中断,据转换结束后,可以产生中断,中断分为三种:规则通道转换结束中断,注入转换通道转换结束中断,模拟看门狗中断。其中转换结束中断很好理解,跟我们平时接触的中断一样,有相应的中断标志位和中断使能位,我们还可以根据中断类型写相应配套的中断服务程序。

最后就是还有一个数据总线,这个数据总线可以数据与DMA相连,实现DMA与ADC的相互配合,达到多通道ADC采样的功能。

  1. ADC常用的一些功能
  1. 单次转换与连续转换:

单次转换模式下,ADC只执行一次转换。一次转换结束后数据保存在ADC_DR 寄存器中,转换结束标志EOC置位,如果开启中断会产生中断。

在连续转换模式中,当前面ADC转换一结束马上就启动另一次转换。一次转换结束后数据保存在ADC_DR 寄存器中,转换结束标志EOC置位,如果开启中断会产生中断。

  1. 扫描模式:

扫描模式就是最后通道转换完成后,ADC不会停在最后一个通道,而是会又从第一个通道开始执行转换。如果设置了DMA位,在每次EOC后,DMA控制器把规则组通道的转换数据传输到SRAM中。

一般在转换多通道ADC时我们会常用连续模式+扫描模式。

  1. 间断模式

间断模式就是可以在转换过程中中间隔几个数据再转换,例如间断模式配置为2,那就是每隔2个序列再转换,第一次转换1号数据,那第二次就转换4号数据,第三次就转换7号数据。

  1. 数据对齐

由于ADC的DR寄存器是16位寄存器。但是MCU的ADC只是12位的ADC,所以再处理数据我们需要对数据的对齐方式进行处理,有左对齐和右对齐

左对齐

右对齐

一般我们选择右对齐,右对齐的数据可以直接使用,左对齐的数据还需要经过处理后才能使用。

3、常用寄存器

(1)ADC_SR状态寄存器

状态寄存器一般只需要关注EOC位就可以了,EOC为规则组的结束标志位,JEOC是注入组的结束标志位。每次转换结束EOC为都会置位,需要通过软件清除或者读取DR时自动清除。

(2)ADC_CR1控制寄存器:

CR1寄存器中一般只需要重点关注DISCEN规则组间断模式位,SCAN扫描模式位,EOCIE中断位就可以。

DISCEN位:可以设置规则组的间断模式,并且需要通过软件设置和清除。

SCAN位:设置扫描模式,通过软件设置和清除

EOCIE位:用于禁止和产生EOC中断

(3)ADC_CR2控制寄存器:

在CR2寄存器中,有很多ADC的重要配置位,ADC转换的开始控制位,触发源开启位,触发源选择位,数据对齐选择,DMA请求,校准位,连续转换位,ADC开启位。

(4)转换时间

转换时间寄存器有两个寄存器,并且某个寄存器都是32位,但是某个数据只需要3位,18个通道,就需要54位,需要两个寄存器。其中SMP17就代表通道17.

  1. ADC规则序列寄存器

ADC序列寄存器是配置ADC通道的序列的,当我们选择好ADC需要的通道后,需要对ADC的通道排序,确定通道的位置,就需要通过ADC序列寄存器进行配置,并且ADC的序列寄存器有三个ADC_SQR1,ADC_SQR2,ADC_SQR3,其中ADC_SQR1寄存器的20-23位为通道序列长度位,用来配置需要转换的ADC通道。其余的位但是相同的,用来配置ADC的通道的序列,例如把ADC1_SQR1的SQ13配置为2,则说明把ADC1的通道14放在序列的第2位。

  1. ADC_DR数据寄存器

4、单通道ADC采样

5、DMA+多通道ADC采样

ADC配置

DMA配置

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

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

相关文章

Java 实现HTML转Word:从HTML文件与字符串到可编辑Word文档

在实际开发中,将HTML页面或内容转换为Word文档是一项常见需求。无论是将网页报表导出为正式文档,还是将合同、发票等页面内容生成可编辑的Word文件,这种转换都能显著提升文档的复用性和归档价值。然而,HTML与Word在结构和渲染机制…

华为L420国产笔记本(统信UOS桌面专业版1070)安装openEuler2403虚拟机

本文探讨在华为L420国产笔记本(操作系统为统信UOS桌面专业版1070)中安装openEuler2403的arm版虚拟机。 一、测试环境 1、硬件设备 华为L420国产笔记本,CPU为华为麒麟9006C,内存16G 2、操作系统 统信UOS桌面专业版1070 二、安…

【STM32】将 FreeRTOS移植到STM32F103RCT6 详细流程

这篇文章是将 FreeRTOS移植到STM32F103RCT6 详细流程。创建用于移植的根文件夹,如 FreeRTOS-F103。也可以命名为别的名称。进入 FreeRTOS-F103 文件夹,在其内创建以下几个子文件夹:apps,doc,drivers,FreeRT…

京东招java开发

java开发(岗位信息经过jobleap.cn授权,可在CSDN发布)京东 四川职位描述1、负责企业金融资金、支付基础支撑相关系统建设; 2、负责重点项目、日常需求的承接,按期保质保量交付; 3、负责系统的日常维护及技术…

文本处理与模型对比:BERT, Prompt, Regex, TF-IDF

1. BERT (Bidirectional Encoder Representations from Transformers) BERT是一种基于Transformer架构的深度双向预训练语言模型。它通过在海量文本上进行预训练(如掩码语言模型任务),学习到丰富的语言表征,并可以通过微调&#x…

流量迷局 - 理解负载均衡(L4/L7)与CDN背后的“隐形路由

《网络迷踪:SRE的TCP/IP故障排查艺术》 系列第七篇:流量迷局 - 理解负载均衡(L4/L7)与CDN背后的“隐形路由” “案发现场”: 你在排查一个问题时,让用户提供他ping你服务域名的结果。 在北京的用户,ping app.mycompany.com,显示的IP地址是 111.222.1.100。 在广州的用户…

dagger.js 实现「CSS 机械键盘」示例解读(对比 React 版本)

0) 效果演示 (代码地址) CSS Mechanical Keyboard1) 示例与来源 dagger.js 版本:本笔围绕 CodePen 上的《CSS Mechanical Keyboard》的 dagger.js 改写版进行解读,核心思路是用 dagger 指令把纯 CSS 艺术包装成可复用的组件&…

如何检查 Linux 系统的内存使用情况

内存管理是保持 Linux 系统平稳运行的重要组成部分。无论您是系统管理员、开发者,学会检查 Linux 内存使用情况是确保系统稳定性和性能的关键步骤。本文将介绍在 Linux 环境下监控和检查内存使用的几种方法,包括命令行工具(如 top、vmstat、p…

我店生活平台是不是 “圈钱平台”?揭开消费补贴新模式的面纱

近年来,本地生活服务领域涌现出诸多创新模式,其中“WO店”生活平台凭借其独特的全民补贴机制引发行业关注。在“圈钱平台”质疑声此起彼伏的背景下,这一模式究竟是商业创新还是资本游戏?本文将从商业模式、风险控制、用户权益保障…

(LeetCode 每日一题) 1493. 删掉一个元素以后全为 1 的最长子数组 (双指针)

题目&#xff1a;1493. 删掉一个元素以后全为 1 的最长子数组 思路&#xff1a;双指针&#xff0c;时间复杂度0(n)。 C版本&#xff1a; class Solution { public:int longestSubarray(vector<int>& nums) {int ans0;int left0,cnt0;for(int i0;i<nums.size();i…

java去图片水印的方法

下面我将从简单到复杂&#xff0c;介绍几种常见的 Java 去水印方法、适用的场景以及需要注意的事项。核心思路去水印的本质是&#xff1a;​用合理的背景内容替换水印区域的像素。方法一&#xff1a;覆盖或裁剪&#xff08;适用于简单情况&#xff09;这种方法不算是真正的“去…

刷题日记0828

今天开启新篇章。面试经典150题。今日计划5道。3/588. 合并两个有序数组怎么样不用sort把 nums2里的放进 nums1呢&#xff1f;看题解。看了&#xff0c;还是新开了个数组。做的还是挺快的&#xff0c;记得有一次面试就是这个题&#xff0c;没想到居然是第一题 hhh。时间复杂度可…

网站开发用什么语言好

HTML、CSS 和 JavaScriptHTML 就像是网站的骨架&#xff0c;负责搭建网页的结构&#xff1b;CSS 则是给网站穿上漂亮的衣服&#xff0c;让它看起来赏心悦目&#xff1b;而 JavaScript 就如同赋予网站生命的灵魂&#xff0c;让网页能够与用户进行交互。据统计&#xff0c;全球超…

开源夜莺里如何引用标签和注解变量

今天遇到开源社区咨询&#xff1a;夜莺里如何引用标签和注解变量&#xff1f;这个问题如果通读文档&#xff0c;其实也能找到答案&#xff0c;不过相关知识是散落在各处的&#xff0c;这里就集中说一下&#xff0c;方便大家查阅。 哪里可以引用标签和注解变量 主要有两个地方…

大数据的五大特征(5V模型)深度解读

一、Volume&#xff08;体积&#xff09;&#xff1a;数据的“海洋” 定义&#xff1a;指数据的巨大体量。大数据的计量单位已经从传统的GB、TB级跃升至PB、EB甚至ZB级。 深度解读&#xff1a; “Volume”是大数据最显而易见的特征。我们正生活在一个数据爆炸的时代&#xff1a…

基于SpringBoot的宠物领养服务系统【2026最新】

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

AI 解决生活小事 2——用 AI 做一回新闻播客

哈喽&#xff0c;各位C站的朋友们&#xff0c;我是极客团长&#xff0c;一位专注用AI解决生活小事的科技玩家&#xff0c;上一期我们聊了聊怎么用AI给电脑做“深度体检”&#xff0c;把电脑里积攒多年的“垃圾”清理了个干净。 那篇反响还不错&#xff0c;看来大家跟我一样&am…

Vue3 图片加载失败回退为默认图:最简、健壮的两种实现(含完整代码)

先上结论&#xff1a;给 <img> 绑定 error&#xff0c;在回调里将 src 切到默认头像&#xff0c;并断开二次触发&#xff0c;配合 new URL(..., import.meta.url).href 解析静态资源路径&#xff0c;可靠、可维护。 场景与目标 登录用户有头像 URL&#xff0c;但可能 40…

VisionPro联合编程控件导入WinFrom以及VS卡死问题

在工业自动化领域&#xff0c;C#和VisionPro都是备受瞩目的工具。C#是一种功能强大的编程语言&#xff0c;广泛应用于Windows平台上的应用程序开发。而VisionPro则是一款视觉检测软件&#xff0c;广泛应用于自动化生产线上的产品质量检测。将C#与VisionPro结合使用&#xff0c;…

练习spring mvc

1. 项目结构总结 这个Spring MVC项目采用Maven管理&#xff0c;遵循标准的Web项目结构。以下是详细的文件级别结构&#xff1a; 核心目录结构 springmvc_helloword/ ├── .idea/ # IDEA项目配置目录 │ ├── artifacts/ # 项目打包配置…