中级会员
 
- 积分
- 243
- 金钱
- 243
- 注册时间
- 2014-7-1
- 在线时间
- 28 小时
|
5金钱
有没有大神试过用SPI的硬件16位读取W25Q64啊?我一直读不出来啊,求大神指点啊
//SPI配置 8位读写的基础上就改了这个,
SPI_InitStructure.SPI_DataSize = SPI_DataSize_16b;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
u16 SPI1_ReadWriteByte(u16 TxData)
{
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_TXE) == RESET) ;
SPI_I2S_SendData(SPI1, TxData);
while (SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE) == RESET);
return SPI_I2S_ReceiveData(SPI1);
}
然后根据他的DATASHEET
u16 SPI_Flash_ReadID(void)
{
u16 Temp = 0;
SELECT_FLASH_CS;
SPI1_ReadWriteByte(0x0090);//
SPI1_ReadWriteByte(0x0000);
Temp=SPI1_ReadWriteByte(0xFFFF);//这里换成0XFF结果也一样 TEMP的值一直是65535
求大神帮忙看看啊!
|
最佳答案
查看完整内容[请看2#楼]
回复【4楼】zengan007:
---------------------------------
这个你不需要在读ID的时候就配置16位!!!
在读数据的时候,才配置为16位,操作完再设置为8位,这才是正确的方法。
不是说一开始就16位模式访问W25Q64了!!
|