SPI读写

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

}

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

 

posted on 2019-02-21 14:08  江红之乡 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/wangzhihong-102511/p/10412141.html

你可能感兴趣的:(SPI读写)