使用了站长提供的代码http://www.openedv.com/posts/list/924.htm,
这里如果是单写单读是没问题的,比如
void flashtest()
{ uint8_t i=0;
uint8_t write_buf[10];
uint8_t read_buf[10];
write_buf[0]=0x1A;
write_buf[1]=0x19;
write_buf[2]=0x18;
write_buf[3]=0x17;
write_buf[4]=0x16;
write_buf[5]=0x15;
write_buf[6]=0x14;
write_buf[7]=0x13;
write_buf[8]=0x12;
write_buf[9]=0x11;
Flash_Write(write_buf,1,10);
Flash_Read(read_buf,1,10);
for(i=0,i<10;i++)
{
USART_SendData(USART1, read_buf);
}
}
但是如果发现是连续读写就会发现后面那6-10的地址数据是没写进去的,比如
void flashtest()
{ uint8_t i=0;
uint8_t write_buf[5];
uint8_t read_buf[10];
write_buf[0]=0x1A;
write_buf[1]=0x19;
write_buf[2]=0x18;
write_buf[3]=0x17;
write_buf[4]=0x16;
Flash_Write(write_buf,1,5);
write_buf[4]=0x15;
write_buf[3]=0x14;
write_buf[2]=0x13;
write_buf[1]=0x12;
write_buf[0]=0x11;
Flash_Write(write_buf,6,10);
Flash_Read(read_buf,1,10);
for(i=0,i<10;i++)
{
USART_SendData(USART1, read_buf);
}
}
|