myrfy001 发表于 2012-1-31 19:51:29

STC12C5A60S2的P0口读不到正确的数据

STC12C5A60S2的P0口读不到正确的数据。P0接的是一块三星的128兆NANDFlash的数据接口,当代码比较简单的时候,P0能读到正确的数据。当代码复杂后,P0能读到的数据变得很诡异,而且修改程序其他地方,居然能影响到P0的返回值……

是不是随着RAM使用的增多,单片机试图去访问外部RAM了呢?但是编译的结果显示的是data=55,也没有超过内部的RAM啊……如果真的是与访问外部有关的话,能通过设置编译器阻止访问吗?我用的C,不会汇编。

还有,程序中同时使用了硬件SPI和串口。

myrfy001 发表于 2012-2-1 08:51:31

还要补充一下。在程序中无论是否设置AUXR寄存器将扩展RAM禁用,都不行的。……

myrfy001 发表于 2012-2-2 16:05:31

为什么没有人回复呢?

mii 发表于 2012-3-29 22:20:09

P0M1,P0M0寄存器必须配置为输入!初始化是先将端口置1

中国 发表于 2012-3-30 08:51:07

先把数据口PO都置为1,然后就可以正确读数了,不过我写了这么多的程序,从来都不先置1的,都可以正确读数,

51yyaayya 发表于 2012-3-30 09:07:58

用排除法,你把P0口换成其他的试试,要是不行就是你的程序问题,要是行就是你P0本身有问题!

1181zjf 发表于 2012-3-30 09:09:14

P0口要加上拉电阻吧!

taishandadi 发表于 2012-3-30 09:11:24

代码简单能读到数据,复杂了读不到,是不是你程序的问题。换个常规51片子试试

anvy178 发表于 2012-3-30 09:26:47

你把你的功能代码一部分 一部分的加,这样就能查到问题出现在那部分代码了。
页: [1]
查看完整版本: STC12C5A60S2的P0口读不到正确的数据