48脚STM32内部基准电压校准ADC的一些心得记录

2023-11-07

STM32的48脚的单片机因为没有Vref+,Vref-,所以我们使用一些高精度参考电压芯片来提高ADC的精度很不方便。这里还有一种方法可以参考下.
STM32内部有一个专门用于校准的稳压器VREFINT,,它由外部的VSSA供电,他的电压一般为1.2V左右。 ADC17通道用于检测这个基准电压,在每颗芯片出厂时 ,ST公司会给芯片的VSSA和VDDA加上一个高精度的3v电压, 然后读出此时的ADC17通道的值存放在芯片内部;我们可以利用这个值精确的算出外部VSSA的电压,然后进一步算出外部ADC的精确电压.

注意:要获得精确的电压还要注意ADC的取样时间要足够长,并且需要启动校准

实验过程:(我的VDDA和VDD是连接 在一起的大约3.2V左右)
1.读取ST在标准3v外加电压条件下的内部ADC基准电压采样值

我用的是STM32L051单片机,通过查询编程手册,我知道了内部基准电压存放在0x1FF80078这个地址.(不同的芯片存放地址可能不同)
定义一个变量
__IO uint16_t VREFINT_CAL=0;
VREFINT_CAL=*(__IO uint16_t *)(0x1FF80078); //得到一个16进制的
注意;这里需要地址对其,否则会进入硬件错误!!

我这里VREFINT_CAL读出来的值是0x65D,

2.读取自己的板子当前电压条件下的内部ADC基准电压采样值**

//第一步开启校准,这一步非常重要,如果不开可能误差较大
HAL_ADCEx_Calibration_Start(&hadc, ADC_SINGLE_ENDED);
//开启ADC转换
HAL_ADC_Start(&hadc);
//等待转换完成
if(HAL_ADC_PollForConversion(&hadc, 200)== HAL_OK )
{
//获取在当前供电条件下的ADC采样值,我的VDDA和VDD是连接
// 在一起的大约3.2V左右
VREF_ADC1_17=HAL_ADC_GetValue(&hadc);
}

3.通过芯片手册提高的公式进行转换

VDDA=3VREFINT_CAL1000/VREF_ADC1_17; //因为单片机不好处理浮点型,我就*1000扩大了1000倍

到这里你的板子的VDDA就精确的算出来了. 我实验单片机测得的电压和万用表测试结果相差0.01,已经非常精准了!!

知道了精确的VDDA那么外部ADC电压就简单了,这里不再赘述

注意:检测ADC电压时检测时间一定要够长,外部ADC管脚的分压电阻不要太大,因为ADC还是需要一一定量电流的,而且开启校准.

如下:我采用时间选择最长,更加准确
hadc.Init.SamplingTime = ADC_SAMPLETIME_160CYCLES_5;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

48脚STM32内部基准电压校准ADC的一些心得记录 的相关文章

  • 小松的STM32教程(6)——ADC

    预备 学习目标 学会调用Get Adc Average函数会使能多个ADC通道 概述 ADC输入电压范围 xff1a 2 4V 3 6V xff0c 一般使用0V和3 3V 数据对齐 xff1a 16bit存放12bit的转换数据 xff0
  • 【STM32学习】模数转换器——ADC

    STM32学习 模数转换器 ADC 零 参考一 ADC转换耗时二 转换模式三 对某些寄存器的理解1 ADC CR22 ADC SQRX 四 库函数注意事项 零 参考 STM32固件库 xff08 标准外设库 xff09 入门学习 第七章 A
  • 使用STM32CubeMX 配置ADC+DAC(DMA)感受

    STM32CubeMX使用感受 开篇先说一下个人使用STM32CubeMX的感受 xff0c 第一点的感受就是STM32CubeMX加速了开发流程 xff0c ST官方的库写的很好 xff0c 在使用之前 xff0c 开发流程一般是打开如正
  • STM32H7A3 ADC+DMA使用问题

    问题1 xff1a DMA采用半字传输16位ADC值 xff0c 用于存储ADC数据的数组一定是采集数的两倍 xff0c 否则会产生ADC溢出的错误中断HAL ADC ErrorCallback xff0c 从而无法进入ADC采集完成中断H
  • Stm32CubeMx通过DMA获取多路ADC采集的数据(踩到坑的来看看,我也是一步步踩坑到实现的)

    用stm32CubeMX 可以轻松配置模拟电压数值采集 由于使用直接存储器DMA进行ADC数据采集无需一直占用着CPU线程 所以我们一般在需要多通道采集的情况下才使用DMA 多路ADC采集在工业生产测量方面也很常用到 所以这个内容我们还是得
  • PX4模块设计之二十四:内部ADC模块

    PX4模块设计之二十四 xff1a 内部ADC模块 1 内部ADC模块简介2 模块入口函数2 1 主入口board adc main2 2 自定义子命令custom command 3 内部ADC模块重要函数3 1 task spawn3
  • STM32 ADC用到的 抗脉冲滤波算法

    先介绍一下算法的基本思想 xff1a 在一组采样值中 xff0c 去掉 abandonMaxNum 个最大数据 xff0c 去掉 abandonMinNum 个最小数据 xff0c 余下的数据求平均值 函数功能 xff1a 抗脉冲滤波法 输
  • 光敏,红外,人体红外检测模块的模拟输出(ADC)实验——入门

    前面给大家介绍了传感器的开关输出的使用 xff0c 今天给大家介绍一下常见传感器的模拟输出的用法 xff0c 用到了STM32的ADC xff08 模数转换 xff09 模块和USART串口通信模块 代码就是正点原子的ADC实验的代码 今天
  • stm32---ADC模数转换

    ADC xff1a 模数转换器 xff0c 将模拟信号 xff08 0v xff0c 3v xff0c 6v等 xff09 转换为表示一定比例电压值的数字信号 xff08 1 xff0c 2 xff0c 3等 xff09 STM32F10x
  • STM32F103C8T6 ADC功能

    12位逐次逼近型ADC 1us转换时间 输入电压0 3 3v和转化范围0 2 12 1 xff08 0 4095 xff09 成线性关系 2个ADC资源 xff0c ADC1和ADC2 xff0c 10个外部通道 有两种转换单元组 xff1
  • 关于ADC的笔记1

    ADC xff0c 全称Anlog to Digital Converter xff0c 模拟 数字转换器 是指将连续变量的模拟信号转换为离散的数字信号的器件 xff0c 我们能通过ADC将外界的电压值读入我们的单片机中 常见的ADC有两种
  • ADC转换值和实际电压的关系

    1 首先确定ADC用几位表示 xff0c 最大数值是多少 比如一个8位的ADC xff0c 最大值是0xFF xff0c 就是255 xff08 一般芯片手册会有说明 xff09 2 然后确定最大值时对应的参考电压值 一般而言最大值对应3
  • STM32 进阶教程 18 – ADC间断模式

    前言 STM32 的ADC拥有连续扫描模式 也有间断模式 间断模式较扫描模式需要更多的触发事件才能完成所有的通道转换操作 在实际工程应用中 可以利用间断模式实现一些特殊应用 关于间断模式 在STM32的数据手册中有如下描述 本节将给大家展示
  • 【STM32】HAL库——ADC

    前期准备 STM32CubeMX STM32RCT6核心板 IDE Keil MDK ARM STM32CubeMX部分 1 配置时钟 选择STM32F103RCTx系列芯片 配置时钟的同时会自动配置IO口引脚 将HCLK设置为最大频率72
  • 48脚STM32内部基准电压校准ADC的一些心得记录

    STM32的48脚的单片机因为没有Vref Vref 所以我们使用一些高精度参考电压芯片来提高ADC的精度很不方便 这里还有一种方法可以参考下 STM32内部有一个专门用于校准的稳压器VREFINT 它由外部的VSSA供电 他的电压一般为1
  • 负载均衡入门

    提纲 ADC 行业现状 ADC 原理 ADC 的实现方式 为什么是 ADC 而不是负载均衡 功能的扩展 解决了什么问题 可用性 Availability 伸缩性 Scalability 性能 End user performance 数据中
  • STM32 ADC采样不准怎么办

    最近在使用STM32L011的ADC时 发现ADC采样值极其不准确 经过查找资料 和反复测试 总算摸出点门道 如将VDDA接到VDD 那么电源的波动会极大的影响ADC精度 不过使用内部参考电压可以计算实际的VDDA电压 说明 VREFINT
  • simulink仿真 adc 采样ePWM输出例程

    新建文件夹并用matlab打开 写入这两个模块 配置 ADC 配置ePWM 不使能B 关了就行 其他的默认即可 配置烧录 连线 示波器接pwma1 和地 adc chanl1接 3 3v或者 0 3 3 都行 转化是 x 3 3 2 12
  • GD32F4xx MCU ADC+DMA 多通道采样

    1 GD32F4xx ADC GD32F4xx 的12位ADC是一种采用逐次逼近方式的模拟数字转换器 1 1 主要特征 可配置12位 10位 8位 6位分辨率 ADC采样率 12位分辨率为2 6MSPs 10位分辨率为3 0 MSPs 分辨
  • 深入浅出《Delta-Sigma Data Converters》(可下载)

    在数字信号处理领域 数据转换器是实现模拟与数字世界之间无缝转换的关键组件 而在这个子领域中 Delta Sigma Data Converter s 一书以其全面和深入的内容 为工程师 学者甚至爱好者们提供了一个极其宝贵的资源 今天将为大家

随机推荐

  • matlab系统稳定性仿真实验,基于Matlab的电力系统暂态稳定仿真实验与分析

    基于Matlab的电力系统暂态稳定仿真实验与分析 第29卷第4期2010年4月 实验室研究与探索 RESEARCHANDEXPLORATIONINLABORATORY Vol 29No 4Apr 2010 Matlab 1引言 长期以来 电
  • vue2与vue3的区别

    1 vue2和vue3双向数据绑定原理发生了改变 vue2 的双向数据绑定是利用ES5 的一个 API Object definePropert 对数据进行劫持 结合 发布订阅模式的方式来实现的 vue3 中使用了 es6 的 ProxyA
  • glTexSubImage2D的使用详解

    Name glTexSubImage2D glTextureSubImage2D specify a two dimensional texture subimage C Specification void glTexSubImage2D
  • LeetCode第3题解析

    给定一个字符串 请你找出其中不含有重复字符的 最长子串 的长度 示例 1 输入 abcabcbb 输出 3 解释 因为无重复字符的最长子串是 abc 所以其长度为 3 示例 2 输入 bbbbb 输出 1 解释 因为无重复字符的最长子串是
  • 【洛谷 P1170】兔八哥与猎人 题解(数学+辗转相除法)

    兔八哥与猎人 题目描述 兔八哥躲藏在树林旁边的果园里 果园有 M N M times N M N 棵树 组成一个 M M M 行
  • 本地从0搭建Stable Diffusion WebUI及错误记录

    从0开始搭建本地Stable Diffusion WebUI环境 一 环境配置 1 使用的电脑配置 系统 Windows10 处理器 英特尔 i7 内存 24GB 显卡 NVIDIA GTX 1060 6GB 2 镜像源 阿里云 清华大学
  • MySql 简介

    目录 数据存取演变历史 数据库软件应用史 数据库的本质 数据库的分类 1 关系型数据库 关系型数据库有哪些 2 非关系型数据库 非关系型数据库有哪些 MySQL简介 基本使用 系统服务制作 密码相关操作 SQL与NoSQL 数据库的概念 数
  • Spring Junit 单元测试@Test 报错 ServletContext找不到 No qualifying bean of type javax.servlet.ServletContext

    Spring Junit 单元测试 Test 报错 ServletContext找不到 No qualifying bean of type javax servlet ServletContext found for dependency
  • 微信小程序画布详解

    有的时候需要插入动画 这时就需要用到画布 接下来浅谈一下画布的功能和用法吧 wxml代码
  • Log Structured Merge Trees(LSM) 原理(LSM 算法的原理是什么?)

    十年前 谷歌发表了 BigTable 的论文 论文中很多很酷的方面之一就是它所使用的文件组织方式 这个方法更一般的名字叫 Log Structured Merge Tree LSM是当前被用在许多产品的文件结构策略 HBase Cassan
  • nginx basic auth配置踩坑记

    nginx的basic auth配置由ngx http auth basic module模块提供 对HTTP Basic Authentication协议进行了支持 用户可通过该配置设置用户名和密码对web站点进行简单的访问控制 basi
  • 「深度学习表情动作单元识别」 最新2022研究综述

    来源 专知 基于深度学习的表情动作单元识别是计算机视觉与情感计算领域的热点课题 每个动作单元描述了一种人脸局部表情动作 其组合可定量地表示任意表情 当前动作单元识别主要面临标签稀缺 特征难捕捉和标签不均衡3个挑战因素 基于此 本文将已有的研
  • js获取被选择文件的路径方法汇总

    html代码如下
  • verilog的module调用

    目录 1 MUX2to1 2 MUX3to1 3 MUX4to1 作为写过很多代码的程序员应该知道什么是函数的调用 例如下面的代码中 main函数调用了add函数对两个数值进行相加的操作 int add int a int b return
  • Asp.Net 企业微信第三方应用开发(随手笔记)

    C 企业微信第三方应用开发 OAuth2简介 1 注册企业 2 新建第三方应用 3 网页授权链接 OAuth2简介 OAuth2的设计背景 在于允许用户在不告知第三方自己的帐号密码情况下 通过授权方式 让第三方服务可以获取自己的资源信息 1
  • Vuforia 中在脚本中添加识别图被识别和丢失的回调

    start Vuforia 的unity sdk中有一个重要的脚本 DefaultTrackableEventHandler cs 这个脚本在场景中拖入ImageTarget的预制体时会自动挂载 using UnityEngine usin
  • 快速排序【模板+边界处理】

    全文目录 快速排序的思想 快速排序演示图 代码模板 i 和 j 的取值和循环处理 i 和 j 的取值 循环条件判断 边界问题 什么是边界问题 如何处理边界问题 为什么要这样处理边界问题 区间划分问题 取最值问题 mid 取中间值时是否需要
  • LLVM学习之基础知识

    介绍 学习LLVM与代码混淆技术课程总结出来的经验 希望能够帮助到大家理解 1 我们首先学会LLVM的基础知识 2 如何搭建LLVM的环境 3 编译一个Hello world 4 LLVM IR基本语法 LLVM搭建环境 Ubuntu 20
  • 让AI生成的图像转化为视频

    Hello 让AI生成图像相信都不陌生 毕竟相关内容铺天盖地 如何让AI生成的图像再转化为视频呢 让图像动起来 让图像去说话 或许是一件非常有趣的一件事情呢 那么 我们接下来要不要去试一试 马上去体验一下具有前瞻性的前沿科技呢 我想 你一定
  • 48脚STM32内部基准电压校准ADC的一些心得记录

    STM32的48脚的单片机因为没有Vref Vref 所以我们使用一些高精度参考电压芯片来提高ADC的精度很不方便 这里还有一种方法可以参考下 STM32内部有一个专门用于校准的稳压器VREFINT 它由外部的VSSA供电 他的电压一般为1