HAL库启动ADC的三个函数的区别

HAL_ADC_Start

应该是启动ADC转换的最基本函数。只是启动一次转换,然后需要用户自己去查询转换是否完成,或者可能只是单次转换。比如,当调用这个函数后,ADC开始转换,但程序需要不断检查某个标志位来看转换是否完成,然后才能读取结果。这种方法可能在简单的应用中使用,比如只需要偶尔采样一个模拟信号的时候。

  • 简单粗暴版:你喊一声“开始转换!”,ADC就吭哧吭哧干活。但干完活它不会主动告诉你,你得自己时不时瞅一眼(轮询),问它“好了没?”。
  • 适用场景:适合偶尔测一次数据的情况,比如每隔几秒读取一次温度传感器。

HAL_ADC_Start_IT

HAL_ADC_Start_IT,这个函数应该中断有关。IT通常代表中断,所以这个函数启动ADC转换,并且允许在转换完成时触发中断。这样,当ADC转换完成后,CPU会被中断,然后执行中断服务程序,在中断里读取ADC的结果。这样就不需要程序不断地轮询状态标志,而是可以去做其他事情,等转换完成时自动处理。这种方式适用于需要定期采样,但又不想让CPU一直等待的情况,可以提高效率。

  • 贴心助手版:你喊“开始转换,完事了叫我!”,ADC干完活立马拍你肩膀(触发中断),喊你赶紧取数据。这样你就不用一直盯着,可以先去刷会儿手机(CPU处理其他任务)。
  • 适用场景:需要及时处理每次采样但频率不高的情况,比如每毫秒读取一次按键状态。

HAL_ADC_Start_DMA

DMA是直接内存访问,这个函数是在启动ADC转换的同时,配置DMA来自动将转换结果传送到内存中的缓冲区,而不需要CPU的干预。这样,ADC每完成一次转换(或者在连续模式下多次转换),DMA会自动把数据搬运到指定的数组或内存区域。这对于需要高速采样或者大量数据采集的应用非常有用,因为这样可以大大减少CPU的负担,让CPU可以去处理其他任务,而DMA和ADC自动完成数据的采集和传输。

  • 全自动土豪版:你提前准备好一个大篮子(内存数组),喊一声“开始转换,往这里塞!”。ADC和DMA这对好基友就会默默干活,ADC负责采样,DMA负责搬数据到篮子。装满一篮子才叫你,中间完全不用你操心。
  • 适用场景:高速连续采集,比如录音、心电图等需要处理大量数据的场景。

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

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

相关文章

EXIT原理和使用

要用到的控制器NVIC(中断总控制器)、EXIT(外部中断控制器) (EXIT是NVIC是下属) GPIO外部中断简图 EXIT的基本概念 EXIT主要特性 EXTI工作原理框图(从输入线开始看) 6个寄存器 EXTI和IO的映射关系 AFIO简介 EXTI与IO对应关系 如…

经典核密度估计(Kernel Density Estimation):从直觉到数学

经典核密度估计(Kernel Density Estimation):从直觉到数学 作为一名在大模型时代进入深度学习领域的研究者,你可能对 Transformer、扩散模型等现代技术驾轻就熟。然而,在阅读一些生成模型的文献(如 Explic…

Halcon 算子 一维码检测识别、项目案例

首先我们要明白码的识别思路 把窗口全部关闭读取新的图片图像预处理创建条码模型设置模型参数搜索模型获取条码结果显示条码结果 图像预处理和条码增强 对比度太低: scale_image(或使用外部程序scale_image_range),增强图像的对比度图像模糊…

vue-cli3+vue2+elementUI+avue升级到vite+vue3+elementPlus+avue总结

上一个新公司接手了一个vue-cli3vue2vue-router3.0elementUI2.15avue2.6的后台管理项目,因为vue2在2023年底已经不更新维护了,elementUI也只支持到vue2,然后总结了一下vue3的优势,最后批准升级成为了vitevue3vue-router4.5element…

SpringBoot实战(三十五)微服务集成OAuth2.0(UAA)

目录 一、知识回顾1.1 什么是 OAuth2 协议?1.2 OAuth2 的4个角色1.3 OAuth2 的3种令牌1.4 OAuth2 的5种认证方式1.5 OAuth2 内置接口地址 二、UAA介绍2.1 概述2.2 UAA的主要功能2.3 UAA 的应用场景 三、微服务集成3.1 集成示例介绍3.2 集成测试 一、知识回顾 在进行…

红果短剧安卓+IOS双端源码,专业短剧开发公司

给大家拆解一下红果短剧/河马短剧,这种看光解锁视频,可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码,这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等,类似红果短剧的玩法,可以看剧赚钱&#xff0c…

从0开始的操作系统手搓教程23:构建输入子系统——实现键盘驱动1——热身驱动

目录 所以,键盘是如何工作的 说一说我们的8042 输出缓冲区寄存器 状态寄存器 控制寄存器 动手! 注册中断 简单整个键盘驱动 Reference ScanCode Table 我们下一步就是准备进一步完善我们系统的交互性。基于这个,我们想到的第一个可以…

百度SEO关键词布局从堆砌到场景化的转型指南

百度SEO关键词布局:从“堆砌”到“场景化”的转型指南 引言 在搜索引擎优化(SEO)领域,关键词布局一直是核心策略之一。然而,随着搜索引擎算法的不断升级和用户需求的多样化,传统的“关键词堆砌”策略已经…

Python ❀ Unix时间戳转日期或日期转时间戳工具分享

设计一款Unix时间戳和日期转换工具,其代码如下: from datetime import datetimeclass Change_Date_Time(object):def __init__(self, date_strNone, date_numNone):self.date_str date_strself.date_num date_num# 转时间戳def datetime2timestamp(s…

【目标检测】【NeuralPS 2023】Gold-YOLO:通过收集与分发机制实现的高效目标检测器

Gold-YOLO: Efficient Object Detector via Gather-and-Distribute Mechanism Gold-YOLO:通过收集与分发机制实现的高效目标检测器 0.论文摘要 在过去的几年中,YOLO系列模型已成为实时目标检测领域的领先方法。许多研究通过修改架构、增强数…

π0源码解析——一个模型控制7种机械臂:对开源VLA sota之π0源码的全面分析,含我司的部分落地实践

前言 ChatGPT出来后的两年多,也是我疯狂写博的两年多(年初deepseek更引爆了下),比如从创业起步时的15年到后来22年之间 每年2-6篇的,干到了23年30篇、24年65篇、25年前两月18篇,成了我在大模型和具身的原始技术积累 如今一转眼…

K8s 1.27.1 实战系列(六)Pod

一、Pod介绍 1、Pod 的定义与核心设计 Pod 是 Kubernetes 的最小调度单元,由一个或多个容器组成,这些容器共享网络、存储、进程命名空间等资源,形成紧密协作的应用单元。Pod 的设计灵感来源于“豌豆荚”模型,容器如同豆子,共享同一环境但保持隔离性。其核心设计目标包括…

企业日常工作中常用的 Linux 操作系统命令整理

Linux 操作系统命令整理 在企业级运维、开发和日常工作中,Linux 命令是绕不开的核心技能。不论是日志排查、进程管理,还是高效运维优化,掌握这些命令都能让你事半功倍!本篇文章整理了自己在日常工作中积累最常用的 Linux 命令&am…

实现NTLM relay攻击工具的Python代码示例

以下是一个实现NTLM relay攻击工具的Python代码示例,该工具可以完成自动扫描IP、配置相关协议、获取hash、自动化设置和执行攻击步骤等功能。 代码思路 IP扫描:使用scapy库进行IP扫描,找出活跃的IP地址。Responder配置:自动配置…

Kotlin和Java区别

哈哈哈,前段时间,面试的时候,突然问到我Kotlin和Java的区别,一下子把我问懵逼了,确实没遇到问这个的,想了下,说了下Kotlin的编译时空检查机制,代码更简洁,很多封装好的AP…

【大模型】大模型分类

大模型(Large Models)通常指参数量巨大、计算能力强大的机器学习模型,尤其在自然语言处理(NLP)、计算机视觉(CV)等领域表现突出。以下是大模型的常见分类方式: 1. 按应用领域分类 …

centos中使用svn整理

centos中使用svn整理 1. 安装 SVN 客户端2. 常见 SVN 用法及示例2.1 创建 SVN 仓库2.2 检出(Checkout)项目2.3 添加文件到版本控制2.4 提交(Commit)更改2.5 更新(Update)本地工作副本2.6 查看文件状态2.7 查…

游戏元宇宙崛起:AI代理IP驱动虚拟世界“无限可能”​

在科技飞速发展的当下,游戏元宇宙正以一种前所未有的姿态崛起,它犹如一颗璀璨的新星,吸引着无数人的目光。而AI代理IP,正成为驱动这个虚拟世界展现“无限可能”的关键力量。 「快代理|11年专注企业级代理IP云服务 —…

基于Servlet + JSP 的物业管理系统

Javaweb物业管理系统|Java|Servlet | JavaWeb|web网站| 分管理员登录,用户登录。 一、内容 项目源码 配套文档 环境部署教程 项目运行教程 二、技术介绍 技术应用: Servlet JavaBean CSS JSP 开发环…

Billing的patient balance的2个例子

Billing的patient balance的2个例子 第一个例子 下面是 0852医院的00005641的计算: 主保险 Allowable: 78.81 Applied:61.79 CoInsurance:17.02 第二保险 Allowable: 15.76 Applied:15.76 我们在计算时是用主保险的Allowable: 78.81&#xff…