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);
}
//返回直接存放的是地址,和数据的长度