STMF1的A/D转换器存在50mV误差

最近在调试中,使用STM32F103C8T6时,发现A/D采集时始终有50mV的误差。且采集不到50mV以下的电压。我使用的HAL库,经过搜索,在某网站找到了解决方法。

直接上代码:

HAL_ADC_Start(&hadc1);

ADC1->CR2|=1<<3; //使能复位校准

while(ADC1->CR2&1<<3); //等待校准结束

ADC1->CR2|=1<<2; //开启AD校准 (下面说了,校准前ADON必须为0,但上面已经设置了ADON=1)

while(ADC1->CR2&1<<2); //等待校准结束

原因可能就是AD没有进行软件校准,原帖也没说明白。我是个小白,想着其他人也可能遇到同样的问题,分享一下。

我在搜索ADC校准的过程中,还找这样一个帖子,链接如下:

STM32L0 ADC使用HAL库关于校准问题的说明_stm32adc校准函数-CSDN博客

原文中说使用,HAL_ADCEx_Calibration_Start(&hadc1);  函数,我试了一下,不好用,可能我没用好,这个问题我就暂时搁置了,欢迎各位大佬指导。

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值