SPI_Flash_Read( (u8*)&gSoundInfo, addr, sizeof(gSoundInfo) );
//讀取SPI FLASH
//在指定地址開始讀取指定長度的數據
//pBuffer:數據存儲區
//ReadAddr:開始讀取的地址(24bit)
//NumByteToRead:要讀取的字節數(最大65535)
// 定義語音信息結構, 8個字節. 和語音flash的頭部結構對應. ADPCM壓縮格式
typedef struct
{
u32 nAddr; // 語音數據首地址
u32 nLength; // 語音數據長度
} SOUND_INFO;
SOUND_INFO gSoundInfo; // 語音信息
void SPI_Flash_Read(u8* pBuffer, u32 ReadAddr, u16 NumByteToRead)
{
u16 i;
W25QXX_CS(0); //使能器件
SPI1_ReadWriteByte(W25X_READ_DATA); //發送讀取命令
SPI1_ReadWriteByte((u8)((ReadAddr) >> 16)); //發送24bit地址
SPI1_ReadWriteByte((u8)((ReadAddr) >> 8));
SPI1_ReadWriteByte((u8)ReadAddr);
for(i = 0; i < NumByteToRead; i++)
{
pBuffer[i] = SPI1_ReadWriteByte(0XFF); //循環讀數
}
W25QXX_CS(1);
}
//返回直接存放的是地址,和數據的長度