大学生
最后登录1970-1-1
在线时间 小时
注册时间2014-9-17
|
我直接用的例程里面的程序,把一个32位的数据写入W25Q16,每次启动的时候读出这个数据,然后在这个基础上在while(1)里面增加,并从串口打印输出,同时再写入Flash,现在遇到个问题,如果多次复位的时候会出现,独处的数据是-1,这种情况,而且是随机的,有时候一脸复位好几次没有出现。还请各位前辈指点一二!感激不尽!
int main(void)
{
SysTick_Init();
LED_Config();
USART1_Config();
printf("W25Q16 TEST!\n");
SPI_FLASH_Init();
DeviceID = SPI_FLASH_ReadDeviceID(); //»ñè¡Device ID
Delay_ms(200);
FlashID = SPI_FLASH_ReadID();
if(FlashID == sFLASH_ID)
{
GPIO_ResetBits(GPIOB,GPIO_Pin_0);
}
Delay_ms(500);
SPI_FLASH_BufferRead(count, FLASH_ReadAddress, BufferSize);
W25Q16_Count = count[0]*16777216+count[1]*65536+count[2]*256+count[3];
printf("%d\n",W25Q16_Count);
while(1)
{
Delay_ms(100);
W25Q16_Count++;
printf("%d\n",W25Q16_Count);
count[0] = W25Q16_Count/16777216;
count[1] = W25Q16_Count%16777216/65536;
count[2] = W25Q16_Count%16777216%65536/256;
count[3] = W25Q16_Count%16777216%65536%256;
SPI_FLASH_SectorErase(FLASH_SectorToErase);
SPI_FLASH_BufferWrite(count, FLASH_WriteAddress, BufferSize);
}
/* add your code here ^_^. */
}
这是主函数,SPI的配置就是火哥的例程里面的。出现的问题如图所示
|
-
|