Freescale MPC56XX的Port输入输出不好用,为什么啊?

2019-03-26 08:06发布

新手,很多东西不明白,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 编辑 ] 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
affe33
1楼-- · 2019-03-26 15:32
 精彩回答 2  元偷偷看……
clarionkw
2楼-- · 2019-03-26 21:23

1.你用的56多少?我印象中PCR中没有APC的概念

2.不要一次给所有GPIO寄存器做同样的赋值,不是每一个IO功能都一样的,有些端口默认只是输出,或者只是输入,或者自动切换,对这些IO,设置EBI和OBI是没有任何意义的。你要选择确实可以作为GPIO功能的端口测试,单独配置这个端口,在测试代码中可以用变量读取该PCR的值进行比较,看看有没有确实按照你的想法初始化了。

3.你的单片机确实在正常工作吗?比如添加一个counter变量,确实在累加吗?

4.相信你的上拉电阻不会选的过大。另外,如果IO配置成输入,PCR有WPE和WPS两位可以配置初始上下拉,你不一定非要外接上拉电阻来测试

clarionkw
3楼-- · 2019-03-26 22:52
affe33,最好不随意做这种评论,以免误导他人

一周热门 更多>