【STM32】OV2640摄像头学习笔记 转
【STM32】OV2640摄像头学习笔记
2019年03月03日 13:01:35 淹死的大白鲨 阅读数 4736更多
分类专栏: 【STM32】
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39492932/article/details/88087010
目录:
- 一、OV2640 Camera
- 二、读取OV2640模块图像数据过程:
- 三、DCMI(Digital camera interface)接口
- 四、SCCB协议
- 1.起始信号
- 2.停止信号
- 五、OV_Camera 配置
- 1.复位摄像头
- 2.读取摄像头ID
- 3.配置帧率
一、OV2640 Camera
- OV2640是OmniVision公司生产的一颗1/4寸的CMOS UXGA(1632*1232)图像传感器;
- 支持自动曝光控制、自动增益控制、自动白平衡、自动消除灯光条纹等自动控制功能。
- UXGA最高15帧/秒,SVGA可达30帧,CIF可达60帧;
- 支持图像压缩,即可输出JPEG图像数据.
比如我们采用UXGA时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后)
这样每行输出总共有1600*2个PCLK周期,输出1600*2个字节
二、读取OV2640模块图像数据过程:
三、DCMI(Digital camera interface)接口
- DCMI是STM32F4芯片自带的一个数字摄像头接口,该接口是一个同步并行接口;
- 支持8位、10位、12位或 14位 CMOS 摄像头模块发出的高速数据流;
- 可支持不同的数据格式:YCbCr4:2:2/RGB565逐行视频和压缩数据 (JPEG);
- 可接收高速(可达 54 MB/s)数据流.
四、SCCB协议
- SCCB(Serial Camera Control Bus) 串行摄像机控制总线协议
- 一个基本传输单元称作一个相
一个相包含总共9比特,前8比特为数据,第9比特为 Don’t-Care bit 不关心比特,该第9比特的数据取决于
传输任务是读还是写(0代表写,1代表读)(可以类比I2C通信协议) - 一个传输任务的最大相个数是3
1.起始信号
//SCCB起始信号
//当时钟为高的时候,数据线的高到低,为SCCB起始信号
//在激活状态下,SDA和SCL均为低电平
void SCCB_Start(void)
{SCCB_SDA=1; //数据线高电平 SCCB_SCL=1; //在时钟线高的时候数据线由高至低rt_hw_us_delay(50); SCCB_SDA=0;rt_hw_us_delay(50); SCCB_SCL=0; //数据线恢复低电平,单操作函数必要
}
2.停止信号
//SCCB停止信号
//当时钟为高的时候,数据线的低到高,为SCCB停止信号
//空闲状况下,SDA,SCL均为高电平
void SCCB_Stop(void)
{SCCB_SDA=0;rt_hw_us_delay(50); SCCB_SCL=1; rt_hw_us_delay(50); SCCB_SDA=1; rt_hw_us_delay(50);
}
五、OV_Camera 配置
1.复位摄像头
OV2640_PWDN=0; //POWER ON
rt_hw_ms_delay(1);
OV2640_RST=0; //复位OV2640
rt_hw_ms_delay(1);
OV2640_RST=1; //结束复位
SCCB_Init(); //初始化SCCB 的IO口
SCCB_WR_Reg(OV2640_DSP_RA_DLMT, 0x01); //操作sensor寄存器
SCCB_WR_Reg(OV2640_SENSOR_COM7, 0x80); //软复位OV2640
2.读取摄像头ID
reg=SCCB_RD_Reg(OV2640_SENSOR_MIDH); //读取厂家ID 高八位
reg<<=8;
reg|=SCCB_RD_Reg(OV2640_SENSOR_MIDL); //读取厂家ID 低八位
res = reg;
if(reg!=OV2640_MID)
{rt_kprintf("MID:%d\r\n",reg);return 1;
}
reg=SCCB_RD_Reg(OV2640_SENSOR_PIDH); //读取厂家ID 高八位
reg<<=8;
reg|=SCCB_RD_Reg(OV2640_SENSOR_PIDL); //读取厂家ID 低八位
if(reg!=OV2640_PID)
{rt_kprintf("HID:%d\r\n",reg);return 2;
}
log_i("OV2640 Camera ID:%x %x ",reg,res);
3.配置帧率
//这里采用SVGA
//初始化 OV2640,采用SVGA分辨率(800*600) fps:30
for(i = 0;i < sizeof(ov2640_sxga_init_reg_tbl)/2;i++)
{SCCB_WR_Reg(ov2640_svga_init_reg_tbl[i][0],ov2640_svga_init_reg_tbl[i][1]);
}
【STM32】OV2640摄像头学习笔记 转相关推荐
- STM32 F4 OV2640摄像头学习笔记(一)
//尝试写作,记录学习过程. 一.OV2640摄像头简介 本节将主要讲解OV2640摄像头基础部分和一些引脚配置. OV2640传感器简介 OV2640是Omni Vision公司生产的一颗1/4寸的 ...
- STM32 F4 OV2640摄像头学习笔记(三)
四.DCMI(Digital camera interface)接口 功能描述 STM32F4 自带了一个数字摄像头(DCMI)接口,该接口是一个同步并行接口,能够接收外部8位.10位.12位或14位 ...
- 【STM32】OV2640摄像头学习笔记
目录: 一.OV2640 Camera 二.读取OV2640模块图像数据过程: 三.DCMI(Digital camera interface)接口 四.SCCB协议 1.起始信号 2.停止信号 五. ...
- STM32 F4 OV2640摄像头学习笔记(二)
二.OV2640数据读取过程 OV2640模块初始化 初始化IO口 上电并复位 读取传感器ID 执行初始化序列 完成初始化 2. OV2640数据读取 如图2.1 OV2640行输出时序图所示,OV2 ...
- STM32 Cube MX学习笔记——TOF 高速单线激光雷达 L10(usart)
STM32 Cube MX学习笔记--TOF 高速单线激光雷达 L10_串口中断通信 1. TOF 高速单线激光雷达 L10 2. STM32 Cube MX配置 3.代码配置 4.编译 烧录 显示 ...
- STM32 HAL库学习笔记1-HAL库简介
STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...
- STM32 HAL库学习笔记4-SPI
STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...
- STM32中断回调函数定时器-STM32电控学习笔记06
STM32中断&定时器-STM32电控学习笔记06 day6:2022/9/24 [中断概述] 在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口 ...
- 翻转电平函数实现LED闪烁-STM32电控学习笔记05
翻转电平函数实现LED闪烁-STM32电控学习笔记05 day5:2022/9/23 [函数介绍] 在前面帖子大致了解了一下HAL_GPIO_WritePin()函数和HAL_Delay()函数的用法 ...
最新文章
- python post请求实例_Python使用requests发送POST请求实例代码
- [Laravel]配置路由小记
- 【编译器】G++相关编译命令
- HTTP URL长度限制
- 中层领导力:西点军校和哈佛大学共同讲授的领导力教程读书摘要
- java中直线距离的计算_java计算两点间的距离方法总结
- 双臂路由实现vlan间通信
- Java【冒泡排序】算法, 大白话式图文解析(附代码)
- 搭建高可用的nacos集群
- 计算机网络——(6)网络互联技术与设备
- 国产系统UOS上的可视化大屏电子看板系统
- 【学术】我读科学网“马臻”老师博客体会
- ios 判断手机角度_iOS 角度获取及旋转
- docker tag 删除images_docker实现重新打tag并删除原tag的镜像
- 刘知远老师-自然语言处理表示学习
- Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示 操作必须使用一个可更新的查询
- Android传递对象方式Parcelable
- 【BLDC理论篇】直流无刷电机的基本原理
- 1024 - 记录互联网新人的上路历程
- 使用ESP8266接入“天猫精灵”控制七彩灯(WS2812)的颜色/亮度-开源