OpenEdv-开源电子网

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

SRAM 会发生数据覆盖的问题,求教原子哥?

[复制链接]

12

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
284
金钱
284
注册时间
2013-9-24
在线时间
52 小时
发表于 2016-4-7 14:45:17 | 显示全部楼层 |阅读模式
void FSMC_SRAM_WriteBuffer(u8* pBuffer,u32 WriteAddr,u32 n)
{
for(;n!=0;n--)
{
*(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;
WriteAddr++;
pBuffer++;
}
}
void FSMC_SRAM_ReadBuffer(u8* pBuffer,u32 ReadAddr,u32 n)
{
for(;n!=0;n--)
{
*pBuffer++=*(vu8*)(Bank1_SRAM3_ADDR+ReadAddr);
ReadAddr++;
}
}

for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp++;
}
for(i=0;i<1024*1024;i+=4096)
{
FSMC_SRAM_ReadBufferffer(&temp,i,1);
}
就是用这个原子哥的测试程序,发现FSMC_SRAM_ReadBufferffer(&temp,0,1);的时候,读出的是0X40,不是0X00。
如果把for(i=0;i<1024*1024;i+=4096)改成for(i=0;i<1024*1024;i+=4095)就是正确的,请问是什么原因啊?

原理图

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

使用道具 举报

12

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
284
金钱
284
注册时间
2013-9-24
在线时间
52 小时
 楼主| 发表于 2016-4-12 08:57:24 | 显示全部楼层
解决了,是有一个地址脚用来做5500的中断了,虽然5500没有使用,不知为何影响。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-10 19:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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