完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
一、OV2640简介
使用的摄像头是ATK-OV2640 摄像头模块 特点: 标准的 SCCB 接口,兼容 IIC 接口 支持 RawRGB、 RGB(RGB565/RGB555)、 GRB422、 YUV(422/420)和 YCbCr(422)输出格式 支持 UXGA、 SXGA、 SVGA 以及按比例缩小到从 SXGA 到 40*30 的任何尺寸 支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹、自动黑电平 校准等自动控制功能。同时支持色饱和度、色相、伽马、锐度等设置。 支持图像缩放、平移和窗口设置 支持图像压缩,即可输出 JPEG 图像数据 自带嵌入式微处理器 集成有源晶振,无需外部提供时钟 集成 LDO,仅需提供 3.3V 电源即可正常工作 参数如表 外接引脚 时序介绍 行像素输出时序 当HREF为高电平时,数据有效,没来一个PCLK, 输出8/10位数据。数据在PCLK下降沿更新,则MCU在PCLK上升沿是读取数据。 Tp表示像素周期, 在 RGB/YUV 输出格式下,每个 tp=2 个 Tpclk,如果是 Raw RGB 格式,则一个 tp=1 个 Tpclk, 其中: Tpclk 即 PCLK 信号的周期。 帧输出时序 Tline即行输出时间, Tp则是像素周期。 VSYNC 是帧同步信号,每一个脉冲,表示一个新帧的开始,而整个帧周期内,有 1200 次行像素(Row)输出,每一行为 1600 个像素,这样得到的输出数据,刚好是 1600*1200 的分辨率,即 UXGA 的分辨率。 二、STM32F4---OV2640DCMI配置 DCMI配置 使用STM32DCMI(数字摄像头接口) ,来对OV2640进行配置,且使用DCMI--DMA直接将摄像头帧数据传送到LCD显示。 首先对DCMI对应IO进行初始化,DCMI_HSYNC、DCMI_PCLK 、DCMI_VSYNC 、DCMI_D0~D7, 且复用IO。 对DCMI配置需要注意的是 :数据位8位、HREF低电平有效、PCLK上升沿有效、VSYNC低电平有效。 DCMI_InitStructure.DCMI_CaptureMode = DCMI_CaptureMode_Continuous; // 连续模式 DCMI_InitStructure.DCMI_CaptureRate = DCMI_CaptureRate_All_Frame; // 全帧捕获 DCMI_InitStructure.DCMI_ExtendedDataMode = DCMI_ExtendedDataMode_8b; //8位数据格式 DCMI_InitStructure.DCMI_HSPolarity = DCMI_HSPolarity_Low; //HSYNC 低电平有效 DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Rising; //PCLK 上升沿有效 DCMI_InitStructure.DCMI_SynchroMode = DCMI_SynchroMode_Hardware; //硬件同步HSYNC,VSYNC DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_Low; //VSYNC 低电平有效 DCMI_ITConfig(DCMI_IT_FRAME, ENABLE);//开启帧中断 DCMI_Cmd(ENABLE); //DCMI使能 配置DCMI_DMA: DMA外设为DCMI-》DR数据寄存器,目的地址为LCD(LCD当做存储器)存储器地址。具体配置: /* 配置 DMA Stream */ DMA_InitStructure.DMA_Channel = DMA_Channel_1; //通道1 DCMI通道 DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&DCMI-》DR; //外设地址为:DCMI-》DR (DCMI获得数据) DMA_InitStructure.DMA_Memory0BaseAddr = DMA_Memory0BaseAddr;//DMA 存储器0地址 (LCD模拟SRAM存储器) DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory; //外设到存储器模式 DMA_InitStructure.DMA_BufferSize = DMA_BufferSize; //数据传输量 ( 1 ) DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable; //外设非增量模式 DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc; //存储器非增量模式 DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word; //外设数据长度:32位 DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize; //存储器数据长度 半字 16位 DMA_InitStructure.DMA_Mode = DMA_Mode_Circular; // 使用循环模式 DMA_InitStructure.DMA_Priority = DMA_Priority_High; //高优先级 DMA_InitStructure.DMA_FIFOMode = DMA_FIFOMode_Enable; //FIFO模式 DMA_InitStructure.DMA_FIFOThreshold = DMA_FIFOThreshold_Full; //使用全FIFO DMA_InitStructure.DMA_MemoryBurst = DMA_MemoryBurst_Single; //外设突发单次传输 DMA_InitStructure.DMA_PeripheralBurst = DMA_PeripheralBurst_Single; //存储器突发单次传输 DMA_Init(DMA2_Stream1, &DMA_InitStructure);//初始化DMA Stream 其他配置完成后,若使能DCMI帧中断,程序会在图像每一帧中断一次,进入DCMI中断服务程序,可用来计数计算帧率 注意: DCMI--DMA会在DCMI-》DR装满32位数据时自动将数据传送至LCD; 我使用的是3.2寸 320X240 LCD, 开始配置都正确完成配置, 可是LCD却无法正确显示,而是在顶部依次显示三个同样非正常图像,后来发现对于使用不同的LCD, 需要对OV2640 PCLKCLK进行分频匹配,可以通过设置 OV2640 的寄存器(0XD3 和 0X11),设置 PCLK 和时钟的分频来降低 PCLK 速度,从而使得低速 MCU 也可以读取 OV2640 的数据。不过这样会降低帧率。 //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分频 } 以上根据学习资料记录,仅用于学习 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1957 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1740 浏览 1 评论
1209 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
800 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1765 浏览 2 评论
2010浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
859浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
303浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
653浏览 3评论
654浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-12 18:08 , Processed in 0.688057 second(s), Total 45, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191