开端看此部分是调试电池的电量的时分,是因为电池的电量显现不精确,debug形式下,看ad收集到的电压被转化成的数据,发现寄存器ADC1BUF中的数据只有关开机是正确的,今后的值都是不对的如同大多数的值是零,后来发现是因为在主循环中的某个模块又把本来装备为模仿输入端口引脚复原成了一般的I/O口了(便是AD1PCFGbits.PCFG0先被装备为0后又被置1,我用的是通道0)。
AD1PCFG = 0; // 装备ad端口,装备一切端口为模仿端口,要是作为一般io运用有必要置1
假如你选用单次转化,就要一向发送转化的指令,读取成果,再发转化指令,再读。便是循环啦。
在收集电池电压时遇到了问题,3.9v到4.2v的电压得到的ad转化的电压值的寄存器存储的电压值正常,3.9v以下的值不正确,发现是Vref+输入的比较电压不稳定形成的。