TI中文支持网
TI专业的中文技术问题搜集分享网站

SM470读取AT45DB161的缓冲区读写

uint8 SPI_FLASH_SendByte(uint8 byte)   //SPI.pdf
{
    SPI_FLASH_CS_HIGH();
   

    SPI2DAT0 = byte;                    //send the byte to the slave device
    while(!(SPI2CTRL3 & 0x01));        // Wait for RxFlag to get set
    return SPI2DAT0;   }

 

 

void FLASH8MB_BUFFER_WRITE(uint8 *pBuffer,uint32 WriteAddress )
{
    uint16 i;
    if(FlashWaitBusy()==0)return;                                               SPI_FLASH_CS_LOW();             //selected the Flash chip: chip select low
    SPI_FLASH_SendByte(0x84);
    SPI_FLASH_SendByte(((WriteAddress & 0xFF0000) >> 16));
    SPI_FLASH_SendByte((WriteAddress& 0xFF00) >> 8);
    SPI_FLASH_SendByte((WriteAddress & 0xFF));
    for(i=0;i<10;i++)
    {
      SPI_FLASH_SendByte(*pBuffer);
      pBuffer++  ;
      printf("%d\r\n",(*pBuffer));
    }
    SPI_FLASH_CS_HIGH();

}

void FLASH8MB_BUFFER_READ(uint32 ReadAddress )
{
     uint16 i;
    uint16 buffer[10];
    if(FlashWaitBusy()==0)return;                                               SPI_FLASH_CS_LOW();             //selected the Flash chip: chip select low
    SPI_FLASH_SendByte(0xD1);
    SPI_FLASH_SendByte(((ReadAddress & 0xFF0000) >> 16));
    SPI_FLASH_SendByte((ReadAddress& 0xFF00) >> 8);
    SPI_FLASH_SendByte((ReadAddress & 0xFF));
    SPI_FLASH_SendByte(Dummy_Byte);
      for(i=0;i<10;i++)
    {
   buffer[i]=SPI2BUF;
   printf("%d\r\n",buffer[i]);

    }
   SPI_FLASH_CS_HIGH();
}

 

在主函数里

{

uint8* pB;
  uint8* p;
  uint16 i;
  uint8 table[10]={1,2,3,4,5,6,7,8,9,10};
  pB=table;

 FLASH8MB_BUFFER_WRITE(pB,0x000020);

FLASH8MB_BUFFER_READ(0x000020);

}

 

将10个数写入缓冲区1 ,然后读出来,但读出来的数据和写进去的数据不一致,求各位大神指导!!!!!

SZ1:

Hi Chao,

您好!

建议您去找一下Atmel支持那,可能得到的帮助更及时。谢谢!

赞(0)
未经允许不得转载:TI中文支持网 » SM470读取AT45DB161的缓冲区读写
分享到: 更多 (0)