w25q64的地址怎么确定的?

2019-07-21 04:02发布

//读取SPI FLASH   //在指定地址开始读取指定长度的数据 //pBuffer:数据存储区 //ReadAddr:开始读取的地址(24bit) //NumByteToRead:要读取的字节数(最大65535) void SPI_Flash_Read(u8* pBuffer,u32 ReadAddr,u16 NumByteToRead)    {    u16 i;       SPI_FLASH_CS=0;                            //使能器件        SPI2_ReadWriteByte(W25X_ReadData);         //发送读取命令        SPI2_ReadWriteByte((u8)((ReadAddr)>>16));  //发送24bit地址         SPI2_ReadWriteByte((u8)((ReadAddr)>>8));        SPI2_ReadWriteByte((u8)ReadAddr);        for(i=0;i<NumByteToRead;i++) {          pBuffer=SPI2_ReadWriteByte(0XFF);   //循环读数       } SPI_FLASH_CS=1;             } 
用的flash是w25q64想问下这里的地址是怎么确定的 24bit表示2的24次方的地址空间吗 为什么是24?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
5条回答
Dream丶飞
2019-07-21 17:01
正点原子 发表于 2013-9-13 23:09
回复【4楼】wan296555869:
---------------------------------
4K的整数倍。

for(sum = 0; sum < D_Len; sum++)
     {
      W25QXX_Read(Data, FLASH_SIZE + (User_Info[sum] * 4096), 20);
      
      sprintf((char *)buf, "(%d)用户 ", User_Info[sum]);
      printf("%s", buf);
      
      sprintf((char *)buf, "用户名为:%s ", Data);
      printf("%s", buf);
     }
User_Info[sum] 为1时读取正常
User_Info[sum] 为2时就会连1的一起读出来


W25QXX_Write(USART1_BUF, FLASH_SIZE + (User_zc * 4096), 20);

User_zc和User_Info[sum] 值对应 捕获.PNG

一周热门 更多>