使用官方历程写的一段代码,仿真读出来都是0,高手帮忙分析一下。
#define DATA_MAX_SIZE 1024
#define DATA_START_ADDR 0x4400
#define DATA_END_ADDR 0x47ff
uint8 Api_Read_Data_From_Flash(uint8 *buf,uint16 addr,uint8 len)
{
uint8 i,*j;
j=buf;
if(addr<DATA_START_ADDR)return FLASH_NOVAID;
set_IAPEN;
IAPCN = BYTE_READ_AP;
for(i=0;i<len;i++)
{
if(addr>DATA_END_ADDR)
{
clr_IAPEN;
return FLASH_FULL;
}
IAPAL = LOBYTE(addr);
IAPAH = HIBYTE(addr);
set_IAPGO;
if((CHPCON&SET_BIT6)==SET_BIT6)
{
clr_IAPFF;
return FLASH_FAIL;
}
*j=IAPFD;
j++;
addr++;
}
clr_IAPEN;
return FLASH_SUCESS;
}