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支持那,可能得到的帮助更及时。谢谢!
TI中文支持网

