最近在调试个小项目,应用的是76E003.也只是应用到了15个IO口,ADC和TIMER2,TIMER3这么几个外设,非常简单。
于是,就新建了个项目,把以前用过的这几个外设的C文件拷过来。在MAIN里面将这几个外设都初始化一下,然后按照原理图,重新定义和修改GPIO的设置,打算先把GPIO调好。
本身就很简单,改好后下载到板子上去看效果,就发现P03这个脚有问题。配置上是设置这个脚为双向脚,准备用作输入读取的,却发现怎么也读取不了,读取的值始终为低电平,即使将这个脚连到电源脚上去,读出来还是低电平。把配置上面改为输入脚,还是不行,现象一样。
换了一个新板子过来,下载下去测试,还是一样。有点奇怪了。。。
去翻76E003的说明书,看到P03这个脚,复用为AIN6和PWM5.突然就想起来,我ADC初始化的就是AIN6吧。
原来在初始化时,虽然先初始化的输入功能,但后面的ADC又把它初始化成了AIN6,成模拟输入脚了。数字输入部分被断开的,所以始终读不到值。
把ADC改到其它输入脚 上,再测试就没问题了。
这个问题在仿真的时候去查看P0的引脚功能设置寄存器应该也能发现问题。
一个不小心引起的乌龙, |