STC12C5A60S2的P0口读不到正确的数据
STC12C5A60S2的P0口读不到正确的数据。P0接的是一块三星的128兆NANDFlash的数据接口,当代码比较简单的时候,P0能读到正确的数据。当代码复杂后,P0能读到的数据变得很诡异,而且修改程序其他地方,居然能影响到P0的返回值……是不是随着RAM使用的增多,单片机试图去访问外部RAM了呢?但是编译的结果显示的是data=55,也没有超过内部的RAM啊……如果真的是与访问外部有关的话,能通过设置编译器阻止访问吗?我用的C,不会汇编。
还有,程序中同时使用了硬件SPI和串口。 还要补充一下。在程序中无论是否设置AUXR寄存器将扩展RAM禁用,都不行的。…… 为什么没有人回复呢? P0M1,P0M0寄存器必须配置为输入!初始化是先将端口置1 先把数据口PO都置为1,然后就可以正确读数了,不过我写了这么多的程序,从来都不先置1的,都可以正确读数, 用排除法,你把P0口换成其他的试试,要是不行就是你的程序问题,要是行就是你P0本身有问题! P0口要加上拉电阻吧! 代码简单能读到数据,复杂了读不到,是不是你程序的问题。换个常规51片子试试 你把你的功能代码一部分 一部分的加,这样就能查到问题出现在那部分代码了。
页:
[1]