新手,很多东西不明白,MPC56XX的芯片在使用一个Pin作为输入或输入之前,都需要进行什么样的基础设置啊?
说明:我使用的是Freescale CodeWarrior。我直接在main里面直接将所有的Pin设置为输入。
for(X=0;X<512;X++)
{
SIU.PCR[X].B.APC = 0;
SIU.PCR[X].B.PA = 0;
SIU.PCR[X].B.OBE = 0;
SIU.PCR[X].B.IBE = 1;
}
然后其中一个Pin通过一个电阻接到+5V,查看所有的SIU.GPDI[X].R;得到的值全部是零。怎么回事啊?
[
本帖最后由 zhexian83 于 2011-4-26 11:03 编辑 ]
此帖出自
小平头技术问答
1.你用的56多少?我印象中PCR中没有APC的概念
2.不要一次给所有GPIO寄存器做同样的赋值,不是每一个IO功能都一样的,有些端口默认只是输出,或者只是输入,或者自动切换,对这些IO,设置EBI和OBI是没有任何意义的。你要选择确实可以作为GPIO功能的端口测试,单独配置这个端口,在测试代码中可以用变量读取该PCR的值进行比较,看看有没有确实按照你的想法初始化了。
3.你的单片机确实在正常工作吗?比如添加一个counter变量,确实在累加吗?
4.相信你的上拉电阻不会选的过大。另外,如果IO配置成输入,PCR有WPE和WPS两位可以配置初始上下拉,你不一定非要外接上拉电阻来测试
一周热门 更多>