stm32F0芯片通过ad采样压值,始终读不到数据
本帖最后由 vvhhbc1 于 2015-11-22 21:46 编辑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值, 反复检查电路, 电路没问题是对的,
问题出在哪里?盼能得到各位师友指点迷津, 谢谢!
再附上初始化和程序应该截图。。
最后把程序打包。。。不是工程。。。
帮顶一下
我这个也是F0的板子。。。
按照我这配置你试试看。。
楼主搜我的帖子,最新的帖子里就用到了ADC,给你拿去参考 Paderboy 发表于 2015-11-22 22:21
我这个也是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;
}
Paderboy 发表于 2015-11-23 07:37
再附上初始化和程序应该截图。。
真是太感谢了, 参考你的代码, 果然通了! :handshake vvhhbc1 发表于 2015-11-23 12:44
真是太感谢了, 参考你的代码, 果然通了!
:loveliness:调通了就好。。可以多看看,HAL库的例程。。。 Paderboy 发表于 2015-11-23 13:33
调通了就好。。可以多看看,HAL库的例程。。。
为毛他没给你金币:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P:P
安臣 发表于 2015-11-23 13:55
为毛他没给你金币
:curse:就是,就是。。。:lol 帮助一下,无所谓的。。。。 安臣就是我们的典范人物。。。。:handshake
页:
[1]
2