对于那个往外部sram写数据函数
void FSMC_SRAM_WriteBuffer(u8* pBuffer,u32 WriteAddr,u32 n)
{
for(;n!=0;n--)
{
*(vu8*)(Bank1_SRAM3_ADDR+WriteAddr)=*pBuffer;
WriteAddr++;
pBuffer++;
}
}
对于红 {MOD}标记那一句不是很懂。在8位的情况下,STM32地址+1我应该算懂。但是结合下面这个代码,就有点晕了
for(i=0;i<1024*8;i+=1024) //原子哥代码原来是for(i=0;i<1024*1024;i+=4096),就是隔4KB放一个,我为了说明就改了下
{
FSMC_SRAM_WriteBuffer(&temp,i,1);
temp++;
}
假设
n一直为1,上面那个
for(;n!=0;n--) 和for(i=0;i<1024*1024;i+=4096) 这两个循环一对比,假设外部sram地址从0开始,
我按照程序执行下去,假设隔1KB放一个数据,假设有个8位a[8]数组,依次放到外部sram的地址空间。如下图
那这样放数据就不是隔1KB,而是隔了1KB+1个地址了。
是不是我理解错了?
---------------------------------
那你一次就只存储了1个字节了.
再次调用,在1K、2K。。等又从新调用赋值了,并不是你说的+2 +3
一周热门 更多>