OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10461|回复: 5

为什么我声明的static静态局部变量值会丢失?

[复制链接]

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-18
在线时间
0 小时
发表于 2014-11-18 09:32:15 | 显示全部楼层 |阅读模式
5金钱
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却不改变

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2014-11-18 13:09:30 | 显示全部楼层
你对文件操作啊,看不懂。
小小蜗牛
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-18
在线时间
0 小时
 楼主| 发表于 2014-11-18 20:23:14 | 显示全部楼层
回复【2楼】jiutianshenjian:
---------------------------------
今天我又试了一下,我在static u32 read_address=0;上边有定义了一个static u32 test_address=0;结果test_address值就会丢失,而read_address的值就不会丢失了!真奇怪
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-11-19 00:05:47 | 显示全部楼层
回复【3楼】pengpengpang:
---------------------------------
加printf,打印这两个值,试试。
然后,MDK优化设置为-O0优化
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

5

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2014-11-18
在线时间
0 小时
 楼主| 发表于 2014-11-20 16:34:31 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
谢谢原子哥这么晚还回复。这两个值我都是打印出来看到的。优化也是-00。static u32 read_address=0跟static u32 test_address=0谁先声明谁的值在执行了f_read()后就会变成零。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-11-20 23:18:05 | 显示全部楼层
回复【5楼】pengpengpang:
---------------------------------
丢失的时候,打印出来,是什么现象?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表