野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10620|回复: 8

STM32里面全局变量y的值无缘无故被改变?

[复制链接]
发表于 2018-5-29 11:16:50 | 显示全部楼层 |阅读模式
好的,我贴一下关键代码:
u16 y[2048];
for(i=0;i<2048;i++){
y=4096/3.3*(sin(2*3.14*26000*i/100000)+1);
}
for(i=0;i<1024;i++){
buf01=y;
}
u16 buf01[1024];
float fft_inputbuf[2048];//在一个函数cre()里面定义的局部变量
接下来是cre()里面调用下面这个函数:
CCopyFill(u16 *buf01,float *fft_inputbuf){int i=0;
        float k=3.3/4096;
        for(i=0;i<BUFFERSIZE;i++){                                                        //éú3éD&#197;o&#197;DòáD
                                         fft_inputbuf[2*i]=(float)buf01*k;                //éú3éê&#228;è&#235;D&#197;o&#197;êμ2&#191;
                                         fft_inputbuf[2*i+1]=0;                                        //Dé2&#191;è&#171;2&#191;&#206;a0
                                printf("%d\r\n",i);

        }

}

问题来了,在循环里到该i等于220的时候,全局变量数组y的值变了,可是在cre()函数和CCopyFill()函数里本页面对y组任何处理或者改变啊,
而且CCopyFill()里面也跟全局变量y没有任何关系,cre()函数里没有对y的指针进行任何操作,只有将y的值赋给其他:
for(i=0;i<1024;i++){
buf01=y;
}
下面附上内存变量表:

代码较多,我大概贴了一下,大佬看一下,哪里出了问题?
回复

使用道具 举报

发表于 2018-5-29 13:54:11 | 显示全部楼层
既然没有对y赋值,你把y定义成const试试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-29 15:14:00 | 显示全部楼层
flyleaf 发表于 2018-5-29 13:54
既然没有对y赋值,你把y定义成const试试

有的,需要初始化,函数里不需要改变
回复 支持 反对

使用道具 举报

发表于 2018-5-29 15:45:19 | 显示全部楼层
进无止境6A 发表于 2018-5-29 15:14
有的,需要初始化,函数里不需要改变

外设也不会对数组进行修改么?
真找不到的话,只能一步步执行,看看是执行到哪句的时候发生变化啦?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-29 16:10:41 | 显示全部楼层
对的,全程不修改y的值,但是执行到CCopyFil时y的值就变了,但是这个函数并没有geny有什么关系啊?
回复 支持 反对

使用道具 举报

发表于 2018-5-29 21:47:01 | 显示全部楼层
u16 y[2048];
for(i=0;i<2048;i++){
y=4096/3.3*(sin(2*3.14*26000*i/100000)+1);
}

不明白为什么要这样对y赋值?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-30 08:52:19 | 显示全部楼层
man1101 发表于 2018-5-29 21:47
u16 y[2048];
for(i=0;i

那还有什么方法?
回复 支持 反对

使用道具 举报

发表于 2018-5-30 18:23:22 | 显示全部楼层

y是一个数组名,不应该是使用y赋值吗?y=4096/3.3*(sin(2*3.14*26000*i/100000)+1);
回复 支持 反对

使用道具 举报

发表于 2018-5-30 18:24:40 | 显示全部楼层
man1101 发表于 2018-5-30 18:23
y是一个数组名,不应该是使用y赋值吗?y=4096/3.3*(sin(2*3.14*26000*i/100000)+1);

为啥中括号显示不出来?
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 06:51 , Processed in 0.031868 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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