首页 > 其他分享 >STM32 ADC使用问题

STM32 ADC使用问题

时间:2023-09-08 14:22:04浏览次数:34  
标签:采样 问题 程序 测量 STM32 ADC 使用 MCU

基本信息

  • MCU:STM32F105R8T6
  • 库:HAL
  • 平台:MDK
  • 精度:12位

问题一

  • 现象:
    在测量的时候,发现采样值在 1023 ~ 1042 和 1279 ~ 1290 两个区间之间无法测量

  • 原因:
    一开始还以为是我计算方式不对,折腾了很久才发现是采样导致的,发现这个现象后,有两个猜测
    可能一:怀疑是放大电路的问题,出现了这样的死区,导致 MCU 无法测量

    测试方法:用万用表测量放大后的信号是有变化的,并没有这样的死区存在,说明也不是放大电路的问题

    可能二:怀疑是 MCU 的 ADC 通道损坏导致无法采集

    测试方法:使用了多个 MCU 测量也是同样的现象,基本可以排除 MCU 的 ADC 通道损坏的可能,为了排除程序功能之间的影响,使用了单独的 ADC 采样 DEMO 程序测量时,居然没有这样的现象,到这里基本可以确定了是程序的问题,经过对比程序,最后发现是 ADC 时钟没有配置,绝望了。

  • 解决办法:
    只需要配置 ADC 采集通道的时钟即可,程序如下所示:

问题二

  • 现象:
    通过采样值计算出的电压与时间的电压有 40MV 的差距

  • 原因:
    未知

  • 解决办法:
    增加 ADC 通道校准,程序如下

    /* 校准ADC */
    HAL_ADCEx_Calibration_Start();
    

标签:采样,问题,程序,测量,STM32,ADC,使用,MCU
From: https://www.cnblogs.com/jzcn/p/17687397.html

相关文章

  • PostgreSQL 数据库使用 psql 导入 SQL
    最近我们有一个SQL需要导入到PostgreSQL,但数据格式使用的是用:----TOCentry7877(class0OID21961)--Dependencies:904--DataforName:upload_references;Type:TABLEDATA;Schema:public;Owner:---COPYpublic.upload_references(id,upload_id,target_......
  • iperf 工具使用
    iperf是一个用于测量网络带宽的工具,可以通过客户端和服务器之间的数据传输来评估网络性能。下面详细介绍iperf的使用方法、常用命令和参数以及注意事项,并提供一些示例说明。在iperf中,流量测试通常使用TCP或UDP协议。1.使用方法首先,需要在一台计算机上运行iperf服务器(服务端),并在另......
  • 使用CSS给页面关键词加条彩虹线
    使用CSS给页面关键词加条彩虹线给页面页面关键词下方加上一个彩虹颜色的装饰线条,更能吸引人注意力,这里来动手实现看看效果效果css.txt-title{width:600px; text-align:center; padding:10px0; margin-bottom:15px; }.txt-titlep,{ font-size:16px; padding:1......
  • 迅为RK3588在 Linux 系统中使用 NPU
     下载rknpu2并拷贝到虚拟机Ubuntu,RKNPU2提供了访问rk3588芯片NPU的高级接口。下载地址为“iTOP-3588开发板\02_【iTOP-RK3588开发板】开发资料\12_NPU使用配套资料\01_rknpu2工具”对于RK3588来说,Linux平台RKNNSDK库文件为librknnrt.so,RK3588平台RKNNSD......
  • 【3rd Party】Cpp 中使用 Protobuf
    前置条件:【Protoc】VS2019(VS平台)使用CMake编译安装、使用Protobuf库【ToolChains】CLion(VS2019)+CMake+Vcpkg的使用ProtoBuf的定义和描述ProtocolBuffers是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。Pro......
  • 使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地
    【问题描述】使用EasyExcel下载文件时,前端获取不到后端返回的文件名,无法下载到本地 【原因分析】实际上文件的流后端已经返回了,只是缺少了Content-Disposition属性返回,前端无法获取到文件名;privatestaticOutputStreamgetOutputStream(StringfileName,HttpServletRespon......
  • python中元组的解包用法,以及 *在方法中的使用方法
    下面是关于python中*的用法详解1.*做法乘法运算符在python中,*作为乘法运算符是使用,用来进行两个数的乘法运算。示例代码:a=3b=4c=a*bprint(c)#12 2.*作为函数的可变参数(是元组的形式导入)单星号(*):*args。将所有参数以元组(tuple)的形式导入双星号(**):**kwargs。将参......
  • 使用HeidiSQL工具导出导入MariaDB数据的正确方法
    这个开源工具,用来导数据确实好使,而且可以一次导多个数据库甚至多个连接导出:1.首先在数据库或表上右键--点击"导出数据为sql脚本"2.左边栏就可以选择数据库或者表,甚至连接3.右边是各种参数,重要的:最大insert如果填0是逐条,会很慢,默认即可;文件路径注意:它不会检测是否有......
  • 为什么 springboot 项目中 使用 lombok 不需要指定版本
    springboot默认管理了lombok的版本依赖,所以不需要指定版本号SpringBoot项目中使用Lombok不需要显式指定Lombok的版本,是因为SpringBoot的父项目(spring-boot-starter-parent)已经为您管理了Lombok的版本。这是通过在SpringBoot的父项目中的dependencyManagement部分指定Lombok的......
  • 【开源三方库】crypto-js加密算法库的使用方法
     OpenAtom OpenHarmony(简称“OpenHarmony”)三方库,是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony应用。如果是发布到开源社区,称为开源三方库,开发者可以通过访问开源社区获取。接下来我们来了解crypto-js开源三方库。crypto-js是一个加密......