野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12025|回复: 7

SPI FLASH问题

[复制链接]
发表于 2016-8-24 16:44:37 | 显示全部楼层 |阅读模式
  1. int main(void)
  2. {        
  3.         /* ÅäÖÃ′®¿ú1Îa£o115200 8-N-1 */
  4.         USART1_Config();
  5.         printf("\r\n ÕaêÇò»¸ö8M′®DDflash(W25X64)êμÑé \r\n");
  6.        
  7.         /* 8M′®DDflash W25Q643õê¼»ˉ */
  8.         SPI_FLASH_Init();
  9.        
  10.         /* Get SPI Flash Device ID */
  11. <font color="#ff0000">        DeviceID = SPI_FLASH_ReadDeviceID();</font>
  12.        
  13.         Delay( 200 );
  14.        
  15.         /* Get SPI Flash ID */
  16.         //FlashID = SPI_FLASH_ReadID();
  17.        
  18.         printf("\r\n FlashID is 0x%X,  Manufacturer Device ID is 0x%X\r\n", FlashID, DeviceID);
  19.        
  20.         /* Check the SPI Flash ID */
  21.         if (1)  /* #define  sFLASH_ID  0XEF4017 */
  22.         {       
  23.                 printf("\r\n &#188;ì2aμ&#189;&#187;a°&#238;′&#174;DDflash W25X64 !\r\n");
  24.                
  25.                 /* Erase SPI FLASH Sector to write on */
  26.                 SPI_FLASH_SectorErase(FLASH_SectorToErase);                  
  27.                
  28.                 /* &#189;&#171;·¢&#203;í&#187;o3&#229;&#199;&#248;μ&#196;êy&#190;YD′μ&#189;flash&#214;D */
  29.                 SPI_FLASH_BufferWrite(Tx_Buffer, FLASH_WriteAddress, BufferSize);
  30.                 printf("\r\n D′è&#235;μ&#196;êy&#190;Y&#206;a£o%s \r\t", Tx_Buffer);
  31.                
  32.                 /* &#189;&#171;&#184;&#213;&#184;&#213;D′è&#235;μ&#196;êy&#190;Y&#182;á3&#246;à′·&#197;μ&#189;&#189;óê&#213;&#187;o3&#229;&#199;&#248;&#214;D */
  33.                 SPI_FLASH_BufferRead(Rx_Buffer, FLASH_ReadAddress, BufferSize);
  34.                 printf("\r\n &#182;á3&#246;μ&#196;êy&#190;Y&#206;a£o%s \r\n", Tx_Buffer);
  35.                
  36.                 /* &#188;ì2éD′è&#235;μ&#196;êy&#190;Yó&#235;&#182;á3&#246;μ&#196;êy&#190;Yê&#199;·&#241;&#207;àμè */
  37.                 TransferStatus1 = Buffercmp(Tx_Buffer, Rx_Buffer, BufferSize);
  38.                
  39.                 if( PASSED == TransferStatus1 )
  40.                 {   
  41.                         printf("\r\n 8M′&#174;DDflash(W25X64)2aê&#212;3é1|!\n\r");
  42.                 }
  43.                 else
  44.                 {        
  45.                         printf("\r\n 8M′&#174;DDflash(W25X64)2aê&#212;꧰ü!\n\r");
  46.                 }
  47.         }// if (FlashID == sFLASH_ID)
  48.         else
  49.         {   
  50.                 printf("\r\n &#187;&#241;è&#161;2&#187;μ&#189; W25X64 ID!\n\r");
  51.         }
  52.        
  53.         SPI_Flash_PowerDown();  
  54.         while(1);  
  55. }
复制代码
请问一下为啥注释掉红色的字后,不能把数据写入flash,难道flash操作必须读取设备地址一次??
回复

使用道具 举报

 楼主| 发表于 2016-8-24 16:49:34 | 显示全部楼层
DeviceID = SPI_FLASH_ReadDeviceID()我指的是这句话注释掉就不行
回复 支持 反对

使用道具 举报

发表于 2016-8-24 17:10:08 | 显示全部楼层
空大大 发表于 2016-8-24 16:49
DeviceID = SPI_FLASH_ReadDeviceID()我指的是这句话注释掉就不行

读取设备id具有唤醒功能,注释掉了可能FLASH处于低功耗状态导致无法读写
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 17:30:57 | 显示全部楼层
flyleaf 发表于 2016-8-24 17:10
读取设备id具有唤醒功能,注释掉了可能FLASH处于低功耗状态导致无法读写

我把这句话SPI_Flash_PowerDown();注释掉之后,不读设备ID也行了,如你所说,唤醒功能,但是FLASH具体啥时候低功耗啊?
回复 支持 反对

使用道具 举报

发表于 2016-8-24 17:34:16 | 显示全部楼层
空大大 发表于 2016-8-24 17:30
我把这句话SPI_Flash_PowerDown();注释掉之后,不读设备ID也行了,如你所说,唤醒功能,但是FLASH具体啥 ...

代码里的53行:
SPI_Flash_PowerDown();  

这个进入了低功耗模式,不需要可以把它删掉,这样就不存在唤醒的问题了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 17:39:04 | 显示全部楼层
flyleaf 发表于 2016-8-24 17:34
代码里的53行:
SPI_Flash_PowerDown();  

FLASH低功耗的时候为啥都不能写入数据,我都不知道这个道理。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 17:43:50 | 显示全部楼层
空大大 发表于 2016-8-24 17:39
FLASH低功耗的时候为啥都不能写入数据,我都不知道这个道理。

想问一下项目中啥时候会需要用到低功耗模式
回复 支持 反对

使用道具 举报

发表于 2016-8-24 17:52:10 | 显示全部楼层
空大大 发表于 2016-8-24 17:43
想问一下项目中啥时候会需要用到低功耗模式

手册有介绍,低功耗不能读写
顾名思义,想节能的时候用低功耗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-16 23:16 , Processed in 0.035383 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表