/**** 该文章只是个人的一些总结,是对自我提升的一种手段,如有错误欢迎各位指出,如果有幸能解决大家的问题那就再好不过了。****/
该开发板支持将P10-P17口作为AD采集的通道。
在练习过程中,通过配置寄存器实现了P10口对外部电压的采集后遇到了一个奇怪的问题:只有P10口可以正常采集,其他七个引脚采集到的电压居然是恒定不变的,无论我如何改变输入电压,它所采集到的值始终是4.14V左右daodi。后在老师的指导下发现是硬件上的问题。
以下两张图是开发板的原理图
右上角是一个2x3的排针。在使用开发板上的红外模块时,我们需要将N_B1引脚与P11引脚用跳帽短接,此时接收二极管接收到的信号可以传入P11引脚中用于外部中断的计数。而我在用P11口采集电压时没有将该跳帽断开,所以此时N_B1引脚与P11口仍是短路的,所以此时传入P11口的电压值实际上是N_B1引脚处的电压值,而并非我从外部传入的电压。
那么N_B1处的电压值到底是哪里来的呢?我们看到左侧电路橙色方框内的部分,VCC进来,电阻R6分去一部分电压,剩余的电压从N_B1引脚输出再连至P11引脚,故传入P11引脚的电压始终是一定值。
在我拔掉跳帽后电压的采集就正常了。天晓得我在软件上看来看去也看不出来个错的时候有多崩溃。
故日后在做一些小项目时,不仅要检查软件上是否有问题,还要检查硬件上是否有问题,硬件的问题不单单是摸得着的元件有没有坏,杜邦线有没有接错,更要关注板子内部导线的走向,信号的走向。