STM32
直播中

史晓明

7年用户 943经验值
私信 关注
[问答]

STM32F103采集模拟量只要低于3.3V,采集的值就是0怎么解决?

利用STM32F103 ADC直接采集模拟量,现场返修板出现的问题。
采集电压引脚不论是多少,只要低于3.3V,通过keil仿真直接观察ADC_DR寄存器采集的值就是0;直接给3.3V,采集到的值就是FFF。换引脚采集依然是这种情况,请问大家遇到过类似问题吗,怎么解决的呢,谢谢大家

回帖(2)

郎渐海

2024-4-8 16:05:00
采集电压的引脚有没有加保护?
换个之前没用过的管脚,试试看能不能正确采集。如果换引脚后能采,那么就是你原来的管脚AD输入功能已损坏。再对比一下全新好板,跟你的返修板的功耗电流情况。
举报

蔡鼎瑾

2024-4-8 17:29:04
这个问题可能是因为STM32F103的ADC参考电压设置不正确导致的。首先,请确保你已经正确地连接了ADC参考电压引脚(VREF+和VREF-)。然后,在代码中需要对ADC的参考电压进行配置,以确保ADC能够正确地将输入电压转换为相应的数字值。

具体的解决方法如下:

1. 确保VREF+和VREF-引脚正确连接,VREF+连接到可用的参考电压源(例如3.3V引脚),VREF-连接到地。

2. 在代码中,使用函数 `HAL_ADC_ConfigChannel` 配置ADC通道和参考电压源。将参考电压源参数设置为 `ADC_EXTERNALTrigConv` 或 `ADC_SOFTWARE_START`。

3. 使用函数 `HAL_ADCEx_Calibration_Start` 进行校准,以确保ADC的准确性。

4. 在你的代码中,使用函数 `HAL_ADC_Start` 启动ADC转换,并使用函数 `HAL_ADC_PollForConversion` 或 `HAL_ADC_Start_IT` 等等函数进行转换值的读取。

5. 确保检查并处理ADC转换值(即读取 `ADC_DR` 寄存器的值)的正确方法。

允许片刻时间确保程序正确执行。如果问题仍然存在,可以尝试使用其他引脚进行ADC采样,或者与STM32F103的供应商联系以获取更多帮助。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分