单片机 NAND FLASH
时间:10-02
整理:3721RD
点击:
各位高手好,我买了一个NAND FLASH型号为K9F2GBU0C,与51单片机连接,读存函数为网上搜的,void NF_WriteByte(uint8 Pageadd,uint8 Columnadd,uint8 NF_dat)
{
uint8 s=0;
NF_Initial();
NF_CE=0;
// NF_Command(0x50);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
NF_Command(0x80);
NF_SendAddre(Pageadd,Columnadd);
NF_WE=0;
NF_DATA=NF_dat;
NF_WE=1;
NF_Command(0x10);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
s=NF_ReadStatus(); //读取状态:(0xff)正确 0x00)错误
NF_CE=1;
}
/***********************************************************************/
/***********************************************************************/
//读取一个字节 NAND Flash ReadByte
//读取命令 00h/01h (half)
//******************************************
uint8 NF_ReadByte(uint8 Pageadd,uint8 Columnadd,uint8 half)
{
uint8 NF_dat,s=0;
NF_Initial();
NF_CE=0;
NF_Command(half);
NF_SendAddre(Pageadd,Columnadd);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
NF_DATA=0xff;
NF_RE=0;
NF_dat=NF_DATA;
NF_RE=1;
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
s=NF_ReadStatus(); //读取状态:(0xff)正确 0x00)错误
NF_CE=1;
return (NF_dat);
}
就是不行啊,三个地址应该是什么,应该是多少?我读出来总为C0?
{
uint8 s=0;
NF_Initial();
NF_CE=0;
// NF_Command(0x50);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
NF_Command(0x80);
NF_SendAddre(Pageadd,Columnadd);
NF_WE=0;
NF_DATA=NF_dat;
NF_WE=1;
NF_Command(0x10);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
s=NF_ReadStatus(); //读取状态:(0xff)正确 0x00)错误
NF_CE=1;
}
/***********************************************************************/
/***********************************************************************/
//读取一个字节 NAND Flash ReadByte
//读取命令 00h/01h (half)
//******************************************
uint8 NF_ReadByte(uint8 Pageadd,uint8 Columnadd,uint8 half)
{
uint8 NF_dat,s=0;
NF_Initial();
NF_CE=0;
NF_Command(half);
NF_SendAddre(Pageadd,Columnadd);
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
NF_DATA=0xff;
NF_RE=0;
NF_dat=NF_DATA;
NF_RE=1;
NF_R_B=1;while(!NF_R_B); //检查是否忙碌
s=NF_ReadStatus(); //读取状态:(0xff)正确 0x00)错误
NF_CE=1;
return (NF_dat);
}
就是不行啊,三个地址应该是什么,应该是多少?我读出来总为C0?
明显你地址写错啦。从新检查
单片机的IO口需要添加上拉电阻 P1口可以不加