中级会员
 
- 积分
- 225
- 金钱
- 225
- 注册时间
- 2015-12-17
- 在线时间
- 44 小时
|
1金钱
我测试了对buffer1的写入数据和读出数据,都是正确的,我对主存储器直接写入和读取,总是不正确呢?程序如下
#define AT45DB081_writememory1 0x82
/* 发送缓冲区初始化 */
uint8_t Tx_Buffer2[264] ;
uint8_t Rx_Buffer2[BufferSize];
#define BufferSize 264
/* 发送缓冲区的数据写到主存储器中 */
AT45DB081_Write_Mainmemory(AT45DB081_writememory1,FLASH_WriteAddress,Tx_Buffer2,BufferSize);
/* 将刚刚写入的数据主存储器读出来放到接收缓冲区中 */
AT45DB081_Read_Mainmemory(Rx_Buffer2,FLASH_ReadAddress,BufferSize);
for ( i=0; i<BufferSize; i++ )
{
printf("\r\n 读出的数据为:0x%04X \r\n", Rx_Buffer2[i]);
}
void AT45DB081_Write_Mainmemory(u8 bufferNo,u32 WriteAddr,u8* pBuffer,u16 NumByteToWrite)
{
u16 i;
AT45DB081_CS=0; //ê1?ü?÷?t
SPI2_ReadWriteByte(bufferNo); //·¢?íD′ò3?üá?
SPI2_ReadWriteByte((WriteAddr & 0xFF0000) >> 16); //·¢?í24bitμ??·
SPI2_ReadWriteByte((WriteAddr & 0xFF00) >> 8);
SPI2_ReadWriteByte(WriteAddr & 0xFF);
for(i=0;i<NumByteToWrite;i++)SPI2_ReadWriteByte(pBuffer[i]);//?-?·D′êy
AT45DB081_CS=1; //è???????
AT45DB081_Wait_Busy();
}
void AT45DB081_Read_Mainmemory(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)
{
u16 i;
AT45DB081_CS=0;
SPI2_ReadWriteByte(AT45DB081_Readmemory); //ê1?ü?÷?t SPI2_ReadWriteByte(AT45DB081_ReadData); //·¢?í?áè??üá?
SPI2_ReadWriteByte((ReadAddr & 0xFF0000) >> 16); //·¢?í24bitμ??·
SPI2_ReadWriteByte((ReadAddr& 0xFF00) >> 8);
SPI2_ReadWriteByte(ReadAddr & 0xFF);
SPI2_ReadWriteByte(Dummy_Byte);
SPI2_ReadWriteByte(Dummy_Byte);
SPI2_ReadWriteByte(Dummy_Byte);
SPI2_ReadWriteByte(Dummy_Byte);
for(i=0;i<NumByteToRead;i++)
{
pBuffer[i]=SPI2_ReadWriteByte(Dummy_Byte); //?-?·?áêy
}
AT45DB081_CS=1;
}
|
|