stm32F0芯片通过ad采样压值始终读不到数据

2019-07-14 16:48发布



STM32F0芯片通过ad采样压值,始终读不到数据, 检查电路是对的.

设置如下:



我在应用中,添加如下:
1, 电池初始化部分
void BATT_Initial(void)
{
        HAL_ADCEx_Calibration_Start(&hadc);                //adc较准
        HAL_ADC_Start(&hadc);                                        //轮询模式

}

2,任务中实时不间断地采集电压ad值:
u32 GetBattValue(void)
{
        u32 bat=400;    //初始化电池ad值的缺省值为400

        HAL_ADC_PollForConversion(&hadc, 10);
        if(HAL_ADC_GetState(&hadc) == HAL_ADC_STATE_REG_EOC)        //EOC(EndOfConversion),用来做轮询或中断标记
        {
                 bat= HAL_ADC_GetValue(&hadc);
        }

        return bat;
}

采集到的ad值始终为初始值400, 或根本没有采集到ad值, 反复检查电路, 电路没问题是对的,

问题出在哪里?  盼能得到各位师友指点迷津, 谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
tianyou15
1楼-- · 2019-07-15 00:17
 精彩回答 2  元偷偷看……
Oo一笑
2楼-- · 2019-07-15 02:51
我这个也是F0的板子。。。

按照我这配置你试试看。。




EnjoyL
3楼-- · 2019-07-15 07:15
楼主搜我的帖子,最新的帖子里就用到了ADC,给你拿去参考
wangyuzi87
4楼-- · 2019-07-15 11:46
Oo一笑 发表于 2018-10-18 08:47
我这个也是F0的板子。。。

按照我这配置你试试看。。

我按照你的配置,设置的一模一样了, 但结果还是一样, ad值始终是初始值400, 没有采集到实际ad值.

看来问题出在应用部分的ad读取部分, 你的应用部分的ad初始化 和 ad读取能给我参考下吗,

我应用部分这样写的, 不知道问题出在什么地方,
我在应用中,添加如下:
1, 电池初始化部分
void BATT_Initial(void)
{
        HAL_ADCEx_Calibration_Start(&hadc);                //adc较准
        HAL_ADC_Start(&hadc);                                        //轮询模式

}

2,任务中实时不间断地采集电压ad值:
u32 GetBattValue(void)
{
        u32 bat=400;    //初始化电池ad值的缺省值为400

        HAL_ADC_PollForConversion(&hadc, 10);
        if(HAL_ADC_GetState(&hadc) == HAL_ADC_STATE_REG_EOC)        //EOC(EndOfConversion),用来做轮询或中断标记
        {
                 bat= HAL_ADC_GetValue(&hadc);
        }

        return bat;
}
wangyuzi87
5楼-- · 2019-07-15 13:08
Oo一笑 发表于 2018-10-18 08:31
再附上初始化和程序应该截图。。

真是太感谢了, 参考你的代码, 果然通了!
Oo一笑
6楼-- · 2019-07-15 17:11
 精彩回答 2  元偷偷看……

一周热门 更多>