本帖最后由 ssmart 于 2018-9-4 16:27 编辑

用QSPI实验程序,换成Q128后有修改相关参数,实验主体程序如下:                while(1)

{

key=KEY_Scan(0);

if(key==KEY1_PRES)//KEY1按下,写入W25Q128

{

LCD_Fill(0,320,800,160,BLACK);//清除半屏

LCD_DispStr(30,320,"Start Write QSPI....");

W25QXX_Write((u8*)TEXT_Buffer,32*1024,SIZE);                //从倒数第100个地址处开始,写入SIZE长度的数据

LCD_DispStr(30,320,"QSPI Write Finished!");        //提示传送完成

}

if(key==KEY2_PRES)//KEY0按下,读取字符串并显示

{

LCD_DispStr(30,320,"Start Read QSPI.... ");

W25QXX_Read(datatemp,32*1024,SIZE);                                        //从倒数第100个地址处开始,读出SIZE个字节

LCD_DispStr(30,320,"The Data Readed Is:   ");        //提示传送完成

LCD_DispStr(30,360,datatemp);                                        //显示读到的字符串

}

}

实验现象是:

32*1024地址那里,原来是FLASH_SIZE-100,从倒数第100个地址处开始,读出SIZE个字节,这样读出来的都是0xff

改成其他地址也可能是乱码,多次修改这个地方的地址,发现地址必须是block起始地址,例如0,32K,64K,96K等block起始地址。

W25QXX_Write   W25QXX_Read函数没有修改,用的原子的,请问这可能是哪儿的问题?

W25Q128FV初始化的时候读取的id是正确的EF17,

但是W25Q64FV竟然不能在QPI模式下读ID,读到的都是0,只能在SPI模式下读到正确的ID=EF16

请问去别在那儿?

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐