STM32 CubeMX ADC采集(HAL库)

news2025/1/10 23:42:44

STM32 CubeMX ADC采集(HAL库)


STM32 CubeMX

  • STM32 CubeMX ADC采集(HAL库)
  • ADC介绍
  • ADC主要特征
  • 一、STM32 CubeMX设置
  • 二、代码部分
  • 三,单通道轮询采样速度
  • 总结


ADC介绍

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

ADC主要特征

● 12位分辨率
● 转换结束、注入转换结束和发生模拟看门狗事件时产生中断
● 单次和连续转换模式
● 从通道0到通道n的自动扫描模式
● 自校准
● 带内嵌数据一致性的数据对齐
● 采样间隔可以按通道分别编程
● 规则转换和注入转换均有外部触发选项
● 间断模式
● 双重模式(带2个或以上ADC的器件)
● ADC转换时间:
─ STM32F103xx增强型产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
─ STM32F101xx基本型产品:时钟为28MHz时为1μs(时钟为36MHz为1.55μs)
─ STM32F102xxUSB型产品:时钟为48MHz时为1.2μs
─ STM32F105xx和STM32F107xx产品:时钟为56MHz时为1μs(时钟为72MHz为1.17μs)
● ADC供电要求:2.4V到3.6V
● ADC输入范围:VREF- ≤ VIN ≤ VREF+
● 规则通道转换期间有DMA请求产生。


一、STM32 CubeMX设置

开启连续扫描使能,1.5采样周期
在这里插入图片描述
我们设置 PCLK2=72M,经过 ADC 预分频器能分频到最大的时钟只能是 12M,采样周期设置为 1.5 个周期,算出最短的转换时间为 1.17us,
在这里插入图片描述

二、代码部分

HAL_ADC_PollForConversion(ADC_HandleTypeDef* hadc, uint32_t Timeout);
  HAL_ADCEx_Calibration_Start(&hadc1);    //AD校准
  HAL_ADC_Start_IT(&hadc1); //开启ADC中断转换
  ADC_Value =HAL_ADC_GetValue(&hadc1);

在这里插入图片描述
在这里插入图片描述

三,单通道轮询采样速度

测试方法:
{(adc转换时间+io反转时间)-io反转时间} =adc转换速度

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
理论值:上面我们设置ADC时钟12Mhz,采样一次最短时间位1.17us
注释:

可编程的通道采样时间:TCONV = 采样时间+ 12.5个周期
**例如**:
当ADCCLK=14MHz,采样时间为1.5周期
 TCONV = 1.5 + 12.5 = 14周期 = **1μs**
 我们设置 PCLK2=72M,经过 ADC 预分频器能分频到最大的时钟只能是 12M,采样周期设置为 1.5 个周期,算出最短的转换时间为 1.17us,

测得实际转换时间:3us-0.3us=2.7.us

总结

以上就是今天要讲的内容,本文仅仅简单介绍了ADC的使用,而ADC提供了大量能使我们快速便捷地处理数据的函数和方法。

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

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

相关文章

springboot整合rabbitmq入门(三)

在上一篇文章中介绍了rabbitmq的fanout模式。今天继续学习另一种模式——direct模式。这种模式是rabbitmq的最简单一种模式。 首先创建一个名为helloDirect1的对列 Configuration public class DirectRabbitConfig {Beanpublic Queue directA(){return new Queue("hell…

【翻译】NCLS: Neural Cross-Lingual Summarization

Abstract 跨语言摘要(CLS)是为不同语言的源文件生成特定语言摘要的任务。现有方法通常将此任务分为两个步骤:摘要和翻译,导致错误传播的问题。为了解决这个问题,我们首次提出了一种端到端的CLS框架,我们称…

淘宝商品销量数据接口,淘宝商品销量数据API接口

淘宝商品销量数据接口是淘宝开放平台提供的一种API接口,通过该接口,商家可以获取到淘宝平台上某一商品的销量数据,包括商品的总销量、近期销量、销售趋势等。 该接口的使用方法是,商家先注册淘宝开放平台账号,申请App…

体会jdk17对于空指针的增强

jdk17 // 可以清楚的看出来a.b.c.num中由于c是空指针,所以导致异常 jdk11 // 只报第6行空指针了,但是因为哪个变量,不知道

打exit_hook,如何找exit_hook的偏移

最近在打比赛的时候,一眼就知道咋做了,打exit_hook为one_gadget 但是泄露出libc之后,没法找到exit_hook的偏移,所以没能拿到一血。搜了好多, 总结大概就是exit_hook不是真实存在的,而是函数指针&#xff0c…

ansible - Role

1、简介: Ansible 中的角色(Role)是一种组织和封装Playbook的方法,用于管理和组织 Ansible代码。它可以将任务和配置逻辑模块化,以便在不同的Playbook中共享和重用。 2、通过 role 远程部署并配置 nginx (1) 准备目…

【FISCO-BCOS】十七、角色的权限控制

目录 一、角色定义 二、账户权限控制 1.委员新增、撤销与查询 2.委员权重修改 3.委员投票生效阈值修改 4. 运维新增、撤销与查询 一、角色定义 分为治理方、运维方、监管方和业务方。考虑到权责分离,治理方、运维方和开发方权责分离,角色互斥。 治理…

pytorch_神经网络构建2(数学原理)

文章目录 深层神经网络多分类深层网络反向传播算法优化算法动量算法Adam 算法 深层神经网络 分类基础理论: 交叉熵是信息论中用来衡量两个分布相似性的一种量化方式 之前讲述二分类的loss函数时我们使用公式-(y*log(y_)(1-y)*log(1-y_)进行概率计算 y表示真实值,y_表示预测值 …

MyBatisPlus(十五)分页查询

说明 MyBatisPlus 提供了分页查询的功能。 MyBatisPlus 的分页功能,是通过分页插件实现的。要使用分页功能,需要配置分页插件的拦截器。 MyBatisPlus 的分页功能,可以通过内置的API接口实现;也可以通过自定义的 mapper#method …

第七章 正交实验法用例评审bug管理流程

一、正交试验法 利用因果图来设计测试用例时,作为输入条件的原因与输出结果之间的因果关系,有时很难从软件需求规格说明中得到。往往因果关系非常庞大,以至于据此因果图得到的测试用例数目多的惊人,给软件测试带来沉重的负担,为了有效地合理地减少测试的工时与费用,可利…

合并不同门店数据-上下合并

项目背景:线下超市分店,统计产品的销售数量和销售额,并用透视表计算求和 merge()函数可以根据链接键横向连接两张不同表,concat()函数可以上下合并和左右合并2种不同的合并方式。merge()函数只能横向连接两张表,而con…

海信电视U8“死磕”技术,家庭影音娱乐的体验突围

最近《奥本海默》上映,导致我无心工作,沉迷抢票。因为北京能播放该片IMAX 1.43画幅的影院只有一家,场场爆满,一票难求。 这次经历也让我对科技产业多了一点思考。流媒体火爆之后,电影发烧友还是会去影院看电影&#xf…

企业信息查询平台:天眼销正式上线!

在团队的不断努力下,天眼销平台终于和大家见面了!总所周知我们是一家数据服务提供商,作为西南数据交易所的数据提供商之一,之前主要是面向B端客户提供数据服务。现在,我们上线的天眼销(tianyanxiao.)主要面…

Android ncnn-android-yolov8-seg源码解析 : 实现人像分割

1. 前言 上篇文章,我们已经将人像分割的ncnn-android-yolov8-seg项目运行起来了,后续文章我们会抽取出Demo中的核心代码,在自己的项目中,来接入人体识别和人像分割功能。 先来看下效果,整个图像的是相机的原图&#…

增强现实抬头显示AR-HUD

增强现实抬头显示(AR-HUD)可以将当前车身状态、障碍物提醒等信息3D投影在前挡风玻璃上,并通过自研的AR-Creator算法,融合实际道路场景进行导航,使驾驶员无需低头即可了解车辆实时行驶状况。结合DMS系统,可以…

【C++】C++11(万能模版、完美转发,可变参数模版,lambda表达式,包装器function+bind绑定)

前言: 我们上一章一节已经接触了C11的一些特性,本章将继续更深入介绍C11中其他使用且重要的一些功能。 目录 (一)万能模版和完美转发 1、万能模版 2、完美转发 (二)可变参数模版 1、可变参数模版的使…

【Node.js】NPM 和 package.json

NPM npm 是 Node.js 的包管理工具,基于命令行,用于安装、升级、移除、管理依赖项。 常用命令: npm init:初始化一个新的 npm 项目,创建 package.json 文件。(括号里为默认值) description&am…

信息可视化和数据可视化的异同和其他比较,到底怎么区分呢?

什么是数据可视化? 根据维塔利弗里德曼的说法: “数据可视化的主要目标是通过图形方式清晰有效地传达数据。” 数据可视化是将数据转化为图表、图形、地图等视觉元素的过程,以便人们更容易理解数据的趋势、关系和模式。它通常强调的是对数据的视觉呈…

Git开发环境使用

目录 git简单介绍 问题 在Git Bash下的操作 在工具idea中使用git 创建分支 合并分支 部分命令合集 git简单介绍 Linux发布了一套属于自己的版本控制系统,运用git可以实现, 代码回溯 , 版本切换 因为是Git是分布式版本控制系统&#x…

unity脚本_Time c#

Time 用于游戏中参与位移 计时 时间暂停等 时间缩放比例: 首先在场景上新建一个空物体 将脚本挂载到空物体上运行 另外重要的两点