昨天发了一篇帖子,为了解决将数据存储到外扩SDRAM中的问题,后来问题解决了,本来把方法已经回复到帖子中了,不知怎么就找不到了。稍后整理后,会再次把整个流程贴上来,以期起到抛砖引玉的作用,能给同样挣扎在入门阶段的新人些许思路。下面是我继续做数据读取时遇到的诡异的问题。
声明:
1、单独做SDRAM的存储于读取是没有问题的。
2、将AIC23采集的数据保存到SDRAM中是没有问题的。
代码:
//-----------------------------------向SDRAM中写入数据-----------------------------------
souraddr = (int *)0x40000; //起始地址
deminaddr = (int *)0x40030; //结束地址
while (souraddr < deminaddr)
[
while (!MCBSP_rrdy(hMcbsp))[]; //接收就绪
datacount = MCBSP_read16(hMcbsp); //接收数据
*souraddr++ = datacount; //将接收到的数据保存到SDRAM中
MCBSP_write16(hMcbsp,datacount);
]
for (j = 0;j < 10;j++)
[
GPIO_RSET(IODATA,0xFE); //
开发板D10亮
delay(1000000);
GPIO_RSET(IODATA,0xFF); //开发板D10灭
delay(1000000);
]
//-----------------------------------读出SDRAM中数据--------------------------------------
souraddr = (int *)0x40000;
deminaddr = (int *)0x40030; //结束地址
datacount = 0;
while (souraddr < deminaddr)
[
databuffer[datacount++] = *souraddr++; //把数据从SDRAM中取出,放到数组中
MCBSP_write16(hMcbsp,databuffer[datacount++]); //发送数据给AIC23
]
while(1);
问题现象:
存进数组的数据分布如下图所示:
问题补充:
1、AIC23采集的数据是16bit有符号的数
2、unsigned int datacount = 0; int databuffer[5000] =[0];
请问这种问题,可能是什么原因导致的???