STM32F407的DMA_BufferSize最大能设置多少字节?600KB似乎不行。

2019-07-20 21:02发布

这个数值最大是多少呢?受RAM大小限制吗?

谢谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
7条回答
phoenix
2019-07-21 13:28
HenryYam 发表于 2016-7-12 12:29
谢谢回复!

我想存一幅 640*480大小的RGB565图片,处理后再送LCD显示。所以需要600KB大小的缓存。外部 ...

1、如果传输长度为1,是不是每次只传一个像素就完了?


这里的“传输长度”是指每次的搬运数据量,直至把一帧的所有数据搬运完毕才停止。





2、如何在帧中断内重设存储器首地址?请详述为盼。


把修改DMA的地址寄存器的代码加到帧中断内,如你定义的数组为:buf_CAM,则

DMA2_Stream1->M0AR = (u32)&buf_CAM;//(寄存器版本)

DMA_InitStructure.DMA_Memory0BaseAddr = (u32)&buf_CAM;//(库函数版本)






3、OV2640的输出速率可设置?如何设置?


通过对OV2640的0xD3寄存器(DSP设置区)、0x11寄存器(Sensor设置区)设置,对时钟进行降频,从而改变了OV2640的输出速率(VSYNC周期)。

本人没有进行相关测试,这有原子的代码,供你参考调试。

//OV2640速度控制
//根据LCD分辨率的不同,设置不同的参数
void ov2640_speed_ctrl(void)
{
        u8 clkdiv,pclkdiv;                //时钟分频系数和PCLK分频系数

        if(lcddev.width==240)                //2.8寸LCD
        {
                clkdiv=1;
                pclkdiv=28;
        }else if(lcddev.width==320)        //3.5寸LCD
        {
                clkdiv=3;
                pclkdiv=15;
        }else                                //4.3/7寸LCD
        {
                clkdiv=15;
                pclkdiv=4;
        }
        SCCB_WR_Reg(0XFF,0X00);               
        SCCB_WR_Reg(0XD3,pclkdiv);        //设置PCLK分频
        SCCB_WR_Reg(0XFF,0X01);
        SCCB_WR_Reg(0X11,clkdiv);        //设置CLK分频       
}


一周热门 更多>