我的一个带休眠功能的F030K6板子的其中一个ADC采集通道用到了PB1做输入,也就是ADC的AIN9输入,绝大多数情况下采集回来的数据都是基本正常的。这段时间气温下降到20度左右,就出现了在冷机第一次开机的时候有1/10左右的机会可能会出现AIN9采集回来的数据明显偏低甚至为0,一次开机1分钟内可能只出现几次这样的数据错误,也可能要持续几秒钟,几秒钟后可能就自动恢复了。用示波器跟踪PB1的输入信号电平和波形是对,跟踪调试看到数据错误时采样开始前和采样结束时相关寄存器(包括通道选择、ADC状态、PB1的模式,输入类型,输入状态等)设置都是正常的。这个问题只有少部分比例的样品上才会发生,而且一般只有第一次上电或者长时间休眠后第一次冷机开机才会发生,热机后再开关机都不会出现这样的问题。另外一个产品用到相同的采样和控制逻逻辑代码只是输入是PA1就没有这样的问题。所以怀疑问题的一个可能性是来自于PB1作为ADC输入有特别的地方。
麻烦有经验的朋友可以分享一下,谢谢! |