STM32 ADC使用问题
基本信息
- 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();
本文来自博客园,作者:浇筑菜鸟,转载请注明原文链接:https://www.cnblogs.com/jzcn/p/17687397.html
如本博客的内容侵犯了你的权益,请与以下地址联系,本人获知后,马上删除。同时本人深表歉意,并致以崇高的谢意! cn_jiaozhu@qq.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现