本帖最后由 MariaBrook 于 2013-1-22 18:08 编辑
使用STM32F103ZET6做数据采样,16路外部ADC通道全部引出,每一路信号都是通过电阻分压之后直接输入AD口。使用示波器观察,除PF10,其他AD口在没有信号输入的情况下,电压基本为0,但是PF10始终有一个0.04V的小电压存在;采回来的数据也是其他AD口都为0,PF10的数据为0x2B。
调试过程:
1、如果将PF10悬空,使用万用表测量值为2V左右。使用示波器观察,发现是一个平均值为2V,周期100ns,幅值200mV的正弦波。此时采样值变化很大。
2、如果将PF10仍然接在两个分压电阻之间,输入为空。那么PF10应该被拉到地上。实测时,PF10处的电压为40mV;而信号入口处的电压也为40mV。此时采样值为0x2B。
3、如果将地线直接给PF10,则示波器显示信号输入口的电压也为0V。此时采样值为0。
4、如果将地线给信号入口,则示波器显示PF10处电压为40mV。此时采样值为0x2B。
5、如果将3.3V分压之后给信号入口,则采样值0x226,其他正常通道为0x206。
看起来好像是PF10自己输出了一个小电压40mV~
我仔细查找过GPIOF的设置。除了在初始化的时候和PF6\7\8\9一样设置为GPIO_Mode_AIN之外,没有其他的操作。在电路板上,PF6\7\8\9\10走在了一起,而且和其他电路用AGND隔离开,没有从晶振的附近走,而且晶振周围和晶振外壳都使用GND屏蔽了。
在硬件电路和程序设计一模一样的情况下,为什么PF6\7\8\9在没有信号输入的情况下,能正常到AGND;而PF10在没有信号的情况下,自身有40mV的电压呢?
|