存储SRAM数据在其它地方出现了

2019-07-14 18:09发布

用例程的CAMERA 程序  我最初是想将照片先存到外部SRAM,然后经过处理再送LCD显示,
在OV_9655init函数里将
DMA_InitStructure.DMA_Memory0BaseAddr = FSMC_LCD1_ADDRESS;这句改成了
DMA_InitStructure.DMA_Memory0BaseAddr = Bank1_SRAM3_ADDR;//0x68000000
再在主函数里加上SRAM初始化
SRAM_Init();
最后添加DCMI中断程序 在程序里面将相机数据送LCD显示
        //显示照片 320*240转240*320  [COL , ROW ]=[320-ROW, COL]

        for(row=0;row
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
屠鸡勇士李运好
1楼-- · 2019-07-14 21:02
 精彩回答 2  元偷偷看……
doubleyh
2楼-- · 2019-07-15 00:09
有可能和数据对其有关,另外buf的大小是320*240,是不是只分配了一半,图片如果是16位的,应该是320*240*2
屠鸡勇士李运好
3楼-- · 2019-07-15 05:36
数据对齐能说的详细点吗?我觉得我给的BUFF够多了吧
DMA_InitStructure.DMA_Memory0BaseAddr = Bank1_SRAM3_ADDR;//0x68000000 
是从0x68000000开始的, 我是从0x68000000+320*240*5之后定义的DATABUFF,   这之间隔了320*240*5个字节了,应该不会不够吧。而且 如果不够的话 图片也应该是连续的分布在DATABUFF ,怎么会中间一段DATABUFF没有数据
 
屠鸡勇士李运好
4楼-- · 2019-07-15 05:54
回复第 4 楼 于2014-10-21 22:41:17发表:
有可能和数据对其有关,另外buf的大小是320*240,是不是只分配了一半,图片如果是16位的,应该是320*240*2
 
#define DATABUFF0           Bank1_SRAM3_ADDR+320*240*5        //
开始地址离Bank1_SRAM3_ADDR都有320*240*5个字节了 ,够图片缓存了
 
而且如果按你的说法,我在DATABUFF7也有照片数据
#define DATABUFF7   Bank1_SRAM3_ADDR+320*240*12   
这都离照片存储的起始地址有320*240*12个字节了 那这图片得多大
再说了,就算它有这么大,那图像数据也应该是连续的啊!也就是说应该在
BUFF0到BUFF7都有图像数据  而我的BUFF4 5 6三个地方是没有数据的 版主赶紧发挥一下您的高智商,教教我怎么办 
 
这万一在很远很远的地方也有图像数据 那我就惨啦
 
 

 
屠鸡勇士李运好
5楼-- · 2019-07-15 08:19
尼玛,怎么我的帖子都被删了
屠鸡勇士李运好
6楼-- · 2019-07-15 09:20
 精彩回答 2  元偷偷看……

一周热门 更多>