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

2019-07-20 07:58发布

好的,我贴一下关键代码:
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 ",i);

        }

}

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

代码较多,我大概贴了一下,大佬看一下,哪里出了问题?
@正点原子

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。