//要写入到W25Q64的字符串数组
const u8 TEXT_Buffer[]={"MiniSTM32 SPI TEST"};
#define SIZE sizeof(TEXT_Buffer) //sizeof函数功能:计算数据空间的字节数
FLASH_SIZE=8*1024*1024; //FLASH 大小为8M字节
while(1)
{
key=KEY_Scan(0);
if(key==WKUP_PRES) //WK_UP 按下,写入W25Q64
{
LCD_Fill(0,170,239,319,WHITE);//清除半屏
LCD_ShowString(60,170,200,16,16,"Start Write W25Q64....");
SPI_Flash_Write((u8*)TEXT_Buffer,FLASH_SIZE+100,SIZE); //从倒数第100个地址处开始,写入SIZE长度的数据
// SPI_Flash_Write((u8*)TEXT_Buffer,200,SIZE);
LCD_ShowString(60,170,200,16,16,"W25Q64 Write Finished!"); //提示传送完成
}
if(key==KEY0_PRES) //KEY0 按下,读取字符串并显示
{
LCD_ShowString(60,170,200,16,16,"Start Read W25Q64.... ");
SPI_Flash_Read(datatemp,FLASH_SIZE+100,SIZE); //从倒数第100个地址处开始,读出SIZE个字节
// SPI_Flash_Read(datatemp,50,SIZE);
LCD_ShowString(60,170,200,16,16,"The Data Readed Is: "); //提示传送完成
LCD_ShowString(60,190,200,16,16,datatemp); //显示读到的字符串
}
疑问:
W25Q64内存是FLASH_SIZE=8*1024*1024,但是我在配套的例程程序里面把地址修改成,FLASH_SIZE+100,原来的地址是,FLASH_SIZE-100,为什么超出内存范围的地址还能读写操作?或者是我的修改不正确? 求帮助 谢谢 |