还是不成 我现在把板子上的A0 A1与flash的ALE 和CLE切断了 通过68013的PC0与CLE和PC1与ALE连了起来 WR RD CS并没改程序如下
#define FLASH_DATA *(volatile BYTE xdata *)0x5000
void Flash_Command(BYTE cmd)
{
PC0 = 1;
PC1 = 0;
FLASH_DATA = cmd;
delay(10);
PC0 = 0;
}
//------------------------------------------
//flash发送地址
//------------------------------------------
void Flash_Address(BYTE add)
{
PC1 = 1;
PC0 = 0;
FLASH_DATA = add;
delay(10);
PC1 = 0;
}
BYTE Flash_ReadID(void)
{
BYTE MAKERID,DEVICEID,INTERCHIPINFOR,SIZEINFOR,PLANEINFOR;
Flash_Command(0x90);
Flash_Address(0x00);
MAKERID = FLASH_DATA ;
DEVICEID = FLASH_DATA ;
INTERCHIPINFOR = FLASH_DATA ;
SIZEINFOR = FLASH_DATA ;
PLANEINFOR = FLASH_DATA ;
///*
EP6FIFOBUF[0] = 0x55;
EP6FIFOBUF[1] = DEVICEID;
EP6BCH = 0;
SYNCDELAY;
EP6BCL = 2; // arm EP6IN
SYNCDELAY;
EP2BCL = 0x80; // re(arm) EP2OUT
//*/
return DEVICEID;
}
但现在的问题是读回来的数据就是0x00 若把0x00 改成0x01读回来的就是0x01 不知问题出在哪了 本人觉得时序没有问题啊
7# zyzyzy407
|