SPI读写


 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);

}

//返回直接存放的是地址,和数据的长度

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM