高级会员

- 积分
- 758
- 金钱
- 758
- 注册时间
- 2015-8-25
- 在线时间
- 165 小时
|
发表于 2016-7-15 18:59:33
|
显示全部楼层
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分频
}
|
|