TI中文支持网
TI专业的中文技术问题咨询交流网站

MSP432E401Y在数组对数组赋值时导致原数组数据变化

我在通过AD采集到一个数组(长度768)的数据时,想将这个数组的值重新赋给另一个数组,但在我赋值完成后,不仅目标数组值没有赋值正确,且原数组里的值也发生变化。通过调试发现,当我赋值到一定数目时,即完成N个数的赋值之后,每进行一次赋值,目标数组和原数组的值都会发生错误的变化,这是什么原因?下面是我的代码,就是一个简单的赋值运算

for(i=0; i<ADC_BUFF_LEN; i++){data[i] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}Index = (Index+1)%3;for(i=0; i<ADC_BUFF_LEN; i++){data[i+ADC_BUFF_LEN] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}Index = (Index+1)%3;for(i=0; i<ADC_BUFF_LEN; i++){data[i+2*ADC_BUFF_LEN] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}for(i=0; i<3*ADC_BUFF_LEN; i++){data[i] = ADC_BUFF_Ana[i+Index*ADC_BUFF_LEN];}

user6378692:

这个问题我刚刚调试了一下,发现是两个数组中有重复的地址,就导致了对一个数组赋值就会使另一个数组的值变化,如果我想定义两个没有地址重复的数组,我该怎么办?这里一个数组是全局变量,另一个只是函数里面声明的。

Susan Yang:

回复 user6378692:

您可以使用DATA_SECTION 给变量分配固定地址

具体可以参考

www.ti.com/…/spnu151r.pdf

5.10.8 The DATA_SECTION Pragma

赞(0)
未经允许不得转载:TI中文支持网 » MSP432E401Y在数组对数组赋值时导致原数组数据变化
分享到: 更多 (0)