请问有那位大虾用过SST的MCU写SST的39SF040的flash,有的请帮忙解决个程序问题,多谢!!
下面是我用SST89E516RD2写39SF040的程序,为什么我在写flash的时候总是不成功,请那位大虾指点一下,不胜感激
unsigned char byteRead(unsigned int addr)
{
unsigned char readData;
readData=XBYTE[addr];
return(readData);
}
void byteProgram(unsigned int addr,unsigned char dat)
{
XBYTE[0x5555]=0xAA;
XBYTE[0X2AAA]=0X55;
XBYTE[0x5555]=0xA0;
XBYTE[addr] =dat;
}
void sectorErase(unsigned int sector)
{
sector=sector < <12;
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[0x5555]=0x80;
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[sector]=0x30;
}
void chipErase(void)
{
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[0x5555]=0x80;
XBYTE[0x5555]=0xAA;
XBYTE[0x2AAA]=0x55;
XBYTE[0x5555]=0x10;
}
void bank(unsigned char bank)
{
switch(bank)
{
case 0: A16=0; A17=0; A18=0; break;
case 1: A16=1; A17=0; A18=0; break;
case 2: A16=0; A17=1; A18=0; break;
case 3: A16=1; A17=1; A18=0; break;
case 4: A16=0; A17=0; A18=1; break;
case 5: A16=1; A17=0; A18=1; break;
case 6: A16=0; A17=1; A18=1; break;
case 7: A16=1; A17=1; A18=1; break;
}
}
void main(void)
{
AUXR=0X02;
rd=1;
wr=0;
sectorErase(0);
byteProgram(0x0300,0x20);
wr=1;
rd=0;
byteRead(0X0300);
.............................
.....................
发表时间:2007年2月8日21:51:48