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);}
//返回直接存放的是地址,和数据的长度
因篇幅问题不能全部显示,请点此查看更多更全内容