你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32U575 按照历程配置了ADC,参考电压采用默认,Vrefe和VADDA短接,3.3V。ADC引脚有1.8v,读取的结果为0。

[复制链接]
_Blue 提问时间:2025-5-28 10:40 / 未解决

图片.png

收藏 评论5 发布时间:2025-5-28 10:40

举报

5个回答
_Blue 回答时间:2025-5-28 10:44:08

这是读取的代码

case Q_BATTERY_EVT:

extern ADC_HandleTypeDef hadc1;

  HAL_ADC_Start(&hadc1);

  uint8_t ret=HAL_ADC_PollForConversion(&hadc1, 100);

  if ( ret== HAL_OK) {

  Log_info1("adcValue:%d",hadc1.Instance->DR);

  }else{

      Log_info1("HAL_ADC_PollForConversion()=%d",ret);

  }

  HAL_ADC_Stop(&hadc1);
xmshao 回答时间:2025-5-28 13:13:01
如果你是使用的ST公司的开发板,应该可以直接拿来用的。


软件方面,在使用ADC之前做下校准。其它也没什么了。


如果是你自己做的板子,检测电源脚都接好了,尤其VDDA脚。


再就是待测信号没有问题。下面是我针对内部Vrefint的测试结果,是正常的。
rrrr.png




_Blue 回答时间:2025-5-29 20:58:00

xmshao 发表于 2025-5-28 13:13
如果你是使用的ST公司的开发板,应该可以直接拿来用的。</p>
<p>

我重新建了工程验证了demo板,就只配置adc,是可以正常的。但是项目中加入好多东西。不知道哪个配置导致adc读取为0。硬件排查了都没发现问题。

_Blue 回答时间:2025-5-30 09:52:20

xmshao 发表于 2025-5-28 13:13
如果你是使用的ST公司的开发板,应该可以直接拿来用的。</p>
<p>

找到原因了。生成初始化代码没有调用HAL_PWREx_EnableVddA();这个函数导致的。

xmshao 回答时间:5 天前

_Blue 发表于 2025-5-30 09:52
找到原因了。生成初始化代码没有调用HAL_PWREx_EnableVddA();这个函数导致的。</p>
<pre><code>

[md]哦,这个问题我也遇到过。 不过比较早的cubeMx版本才会及时使能该时钟,后面版本的都有相应加上这行代码。

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版