void read_usbdata(void)
{
static u32 read_address=0;
volatile u32 readaddress1=0;
FRESULT res;
f_mount(0, &fatfs);
res = f_open(&file, "Cfont.FON" , FA_READ);
// if (!res)
// {
readaddress1=read_address;
f_lseek(&file, readaddress1);
f_read(&file, Data_buffer, sizeof(Data_buffer), (void *)&num_ReadBytes);
GPIO_SetBits(GPIOF, GPIO_Pin_7);
//if(read_address>9000)
//printf( "%d ", readaddress1);
//read_address+=4096;
read_address=readaddress1+4096;
// }
f_close(&file);
}
主函数中要调用该函数,本来我想保留read_address值,可是每次程序执行了f_read后read_address就变成0,readaddress1却不改变
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
---------------------------------
今天我又试了一下,我在static u32 read_address=0;上边有定义了一个static u32 test_address=0;结果test_address值就会丢失,而read_address的值就不会丢失了!真奇怪
---------------------------------
谢谢原子哥这么晚还回复。这两个值我都是打印出来看到的。优化也是-00。static u32 read_address=0跟static u32 test_address=0谁先声明谁的值在执行了f_read()后就会变成零。
---------------------------------
丢失的时候,打印出来,是什么现象?
一周热门 更多>