STM32F103驱动OV2640像素时钟设置问题

2019-07-20 23:07发布

本帖最后由 易帜 于 2016-3-13 13:21 编辑

关于用STM32驱动OV2640, 大多人是不推荐的,我想学习下,因为手里只有STM32F103的开发板,参考了原子老师的战舰板驱动OV2640程序, 也看了官方给的PDF ,对于像素时钟的设置遇到诸多问题, 还请各位前辈,及原子老师能给我答疑. 原子老师的程序中://OV2640速度控制//根据LCD分辨率的不同,设置不同的参数voidov2640_speed_ctrl(void){u8clkdiv,pclkdiv;                        //时钟分频系数和PCLK分频系数if(lcddev.width==240)                //2.8寸LCD{clkdiv=1;pclkdiv=28;}elseif(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分频        } 问题1,我想知道为什LCD的分辨率会和PCLK的速度有关?,按说不同的分辨率的屏幕,只需设置一下屏幕的输出尺寸就好,为什么还要设置PCLK的速度呢,按我理解诶,只要把PCLk的速度降到IO可以抓取的程度不就行了吗. 分辨率大小应该只会影响while(IO)卡时序的循环次数.问题2, 通过几组对0xD3(DSP设置区)0x11(Sensor设置区)我发现,虽然0xD3寄存器,0x11寄存器都可以对时钟进行降频,可它们的效果并不完全一样,通过设置0x11寄存器,对主时钟进行分频(降频),会改变输出的帧率(VSYNC周期),可通过设置0xD3,对时钟进行分频(降频),则不会改变输出的帧率(VSYNC周期). 猜想0x11,0xD3的设定值 以及设定的输出图像尺寸 和 帧率,,以及VSYNC信号的占空比之间一定有着 某种关系, 我的示波器太不好用,无法同时捕获两路信号.加上我才学疏浅,恳请明白人,老师点睛. 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。