打印
[STM32H7]

ADC3模数转换数据不变,断电改变

[复制链接]
586|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
咚了个咚|  楼主 | 2025-2-28 23:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用STM32Cube IDE,stm32h7中的ADC3_DMA采集信号。程序仿真时,ADC值没有变化。将PC2连接到VDD,则得到ADCConvertedValue=4089保持不变,断点重新上电,然后变为4092。不断点的情况下接地,数值不变,仍然4092。断点重新上电,则ADCConvertedValue=0。在仿真中每次只出现一个数值然后不变。

使用特权

评论回复
沙发
公羊子丹| | 2025-3-3 07:47 | 只看该作者
你的 ADC3 是在哪种模式下运行的?如果是单次转换模式,可能 ADC 只转换了一次,导致数值不变,可以试试连续转换模式。

使用特权

评论回复
板凳
周半梅| | 2025-3-3 07:49 | 只看该作者
你用的是 DMA 还是普通查询模式?如果是 DMA,确保 HAL_ADC_Start_DMA() 已正确调用,并且 ADC 配置为循环模式。

使用特权

评论回复
地板
帛灿灿| | 2025-3-3 07:50 | 只看该作者
你的 PC2 引脚配置正确吗?确认它是 Analog 模式,而不是 Input 或 Output,否则可能影响 ADC 采样。

使用特权

评论回复
5
童雨竹| | 2025-3-3 07:52 | 只看该作者
试试看手动触发 ADC 读取,比如调用 HAL_ADC_PollForConversion(),看看数值是否会更新。

使用特权

评论回复
6
万图| | 2025-3-3 07:53 | 只看该作者
你有没有检查 ADC3->DR 寄存器?如果 DR 里面的值一直不变,可能是 ADC 没有正确启动或 DMA 传输异常。

使用特权

评论回复
7
Wordsworth| | 2025-3-3 07:54 | 只看该作者
试着在循环里打印 ADC 采样值,并在采样前加 HAL_Delay(10),看看采样值是否仍然保持不变。

使用特权

评论回复
8
Bblythe| | 2025-3-3 07:56 | 只看该作者
你的 Clock Prescaler 设对了吗?H7 的 ADC 需要适当降低时钟分频,否则可能会导致采样异常。

使用特权

评论回复
9
Pulitzer| | 2025-3-3 07:57 | 只看该作者
你有没有初始化 VREF+ ?如果 VREF 配置不正确,ADC 可能会测量到异常值,检查 HAL_SYSCFG_AnalogSwitchConfig() 配置。

使用特权

评论回复
10
Uriah| | 2025-3-3 07:59 | 只看该作者
试试看在 CubeMX 里开启 ADC 内部温度传感器或 VREFINT,读取这些内部基准电压,看是否正常变化。

使用特权

评论回复
11
Clyde011| | 2025-3-3 08:00 | 只看该作者
你可以试试直接用 HAL_ADC_GetValue() 读取 ADC3 数据,而不依赖 DMA,看看是否是 DMA 传输问题导致的数值不变。

使用特权

评论回复
12
jcky001| | 2025-3-18 11:06 | 只看该作者
可能是配置错误、时钟未正确启用

使用特权

评论回复
13
elephant00| | 2025-3-18 11:07 | 只看该作者
检查ADC和DMA的配置是否正确,尤其是通道、时钟源、采样时间等。

使用特权

评论回复
14
两只袜子| | 2025-3-18 17:03 | 只看该作者
检查DMA的传输方向和数据宽度是否匹配ADC的输出。

使用特权

评论回复
15
cr315| | 2025-3-18 19:00 | 只看该作者
DMA或ADC初始化问题。

使用特权

评论回复
16
laocuo1142| | 2025-3-18 19:30 | 只看该作者
仿真环境下,可能需要手动触发ADC转换。

使用特权

评论回复
17
flycamelaaa| | 2025-3-18 20:13 | 只看该作者
仿真器的设置是否支持实时外设仿真。

使用特权

评论回复
18
powerantone| | 2025-3-18 21:20 | 只看该作者
查看代码中的ADC校准步骤是否被正确执行,因为STM32H7的ADC需要校准才能达到准确值。

使用特权

评论回复
19
stormwind123| | 2025-3-18 22:00 | 只看该作者
检查DMA缓冲区是否被正确初始化,是否有数据覆盖或未处理的情况。

使用特权

评论回复
20
probedog| | 2025-3-18 22:30 | 只看该作者
仿真时可能存在优化问题,关闭编译器优化,变量在调试时可见。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

10

帖子

0

粉丝