最近在使用STM32H7时,因为使用PA0作为电池电压的输入检测,也就是ADC1的通道16.
使用官方的例程运行的时候,电压检测正常。一集成到自己的大项目中,ADC采集的数据就不对,怎么搞都不行,真是很邪门。后来发现SYSCFG中的PMCR里面的PA0SO给勾上去了。系统重启的时候是不会勾上的,一运行__HAL_RCC_SYSCFG_CLK_ENABLE() ; 就勾上去了,此时ADC的PA0就不能正常采集电压了。
所以需要在ADC的初始化中将PA0SO的勾勾取消。
之后就可以正常ADC转换了,折腾了多日。。。。。。。。。。。。