【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

基本概念:

比如我们采用UXGA时序,RGB565格式输出,每2个字节组成一个像素的颜色(低字节在前,高字节在后)
这样每行输出总共有1600*2个PCLK周期,输出1600*2个字节

二、读取OV2640模块图像数据过程:

开始等待帧同步信号(VSYNC)HREF是否为高电平等待第一个PCLK上升沿读取第一个像素低字节等待第二个PCLK上升沿读取第一个像素高字节等待第三个PCLK上升沿读取第二个像素低字节以此循环读取...............结束yes

三、DCMI(Digital camera interface)接口

DCMI接口简介- 初始化流程:

①配置相关引脚的复用功能,使能DCMI时钟

②设置DCMI工作模式及PCLK/HSYNC/VSYNC

③设置DMA

④启动DCMI传输

四、SCCB协议

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摄像头学习笔记 转相关推荐

  1. STM32 F4 OV2640摄像头学习笔记(一)

    //尝试写作,记录学习过程. 一.OV2640摄像头简介 本节将主要讲解OV2640摄像头基础部分和一些引脚配置. OV2640传感器简介 OV2640是Omni Vision公司生产的一颗1/4寸的 ...

  2. STM32 F4 OV2640摄像头学习笔记(三)

    四.DCMI(Digital camera interface)接口 功能描述 STM32F4 自带了一个数字摄像头(DCMI)接口,该接口是一个同步并行接口,能够接收外部8位.10位.12位或14位 ...

  3. 【STM32】OV2640摄像头学习笔记

    目录: 一.OV2640 Camera 二.读取OV2640模块图像数据过程: 三.DCMI(Digital camera interface)接口 四.SCCB协议 1.起始信号 2.停止信号 五. ...

  4. STM32 F4 OV2640摄像头学习笔记(二)

    二.OV2640数据读取过程 OV2640模块初始化 初始化IO口 上电并复位 读取传感器ID 执行初始化序列 完成初始化 2. OV2640数据读取 如图2.1 OV2640行输出时序图所示,OV2 ...

  5. STM32 Cube MX学习笔记——TOF 高速单线激光雷达 L10(usart)

    STM32 Cube MX学习笔记--TOF 高速单线激光雷达 L10_串口中断通信 1. TOF 高速单线激光雷达 L10 2. STM32 Cube MX配置 3.代码配置 4.编译 烧录 显示 ...

  6. STM32 HAL库学习笔记1-HAL库简介

    STM32 HAL库学习笔记1-HAL库简介 HAL库 SPL 库 和 HAL 库两者相互独立,互不兼容.几种库的比较如下 目前几种库对不同芯片的支持情况如下 ST 中文官网上有一篇<关于ST库 ...

  7. STM32 HAL库学习笔记4-SPI

    STM32 HAL库学习笔记4-SPI 前言 一.SPI协议简介 SPI物理层 SPI协议层 1.基本通讯过程 2. 通讯的起始和停止信号 3. 数据有效性 4. CPOL/CPHA 及通讯模式 二. ...

  8. STM32中断回调函数定时器-STM32电控学习笔记06

    STM32中断&定时器-STM32电控学习笔记06 day6:2022/9/24 [中断概述] 在 STM32 中,对信号的处理可以分为轮询方式和中断方式,轮询方式就是不断去访问一个信号的端口 ...

  9. 翻转电平函数实现LED闪烁-STM32电控学习笔记05

    翻转电平函数实现LED闪烁-STM32电控学习笔记05 day5:2022/9/23 [函数介绍] 在前面帖子大致了解了一下HAL_GPIO_WritePin()函数和HAL_Delay()函数的用法 ...

最新文章

  1. python post请求实例_Python使用requests发送POST请求实例代码
  2. [Laravel]配置路由小记
  3. 【编译器】G++相关编译命令
  4. HTTP URL长度限制
  5. 中层领导力:西点军校和哈佛大学共同讲授的领导力教程读书摘要
  6. java中直线距离的计算_java计算两点间的距离方法总结
  7. 双臂路由实现vlan间通信
  8. Java【冒泡排序】算法, 大白话式图文解析(附代码)
  9. 搭建高可用的nacos集群
  10. 计算机网络——(6)网络互联技术与设备
  11. 国产系统UOS上的可视化大屏电子看板系统
  12. 【学术】我读科学网“马臻”老师博客体会
  13. ios 判断手机角度_iOS 角度获取及旋转
  14. docker tag 删除images_docker实现重新打tag并删除原tag的镜像
  15. 刘知远老师-自然语言处理表示学习
  16. Access update语句 提示 操作必须使用一个可更新的查询Access update语句 提示 操作必须使用一个可更新的查询
  17. Android传递对象方式Parcelable
  18. 【BLDC理论篇】直流无刷电机的基本原理
  19. 1024 - 记录互联网新人的上路历程
  20. 使用ESP8266接入“天猫精灵”控制七彩灯(WS2812)的颜色/亮度-开源

热门文章

  1. 视频倍速如何一键调整
  2. 河南工业大学计算机网络技术(专升本)2022年02批次试题解答
  3. R语言主成分分析法笔记
  4. 基于 Vue+SQLite3开发吉他谱推荐网站【100010388】
  5. 微信小程序开发资料整理
  6. Altium Designer原理图编译参数设置
  7. 寒霜引擎中strand-based(基于线)的头发渲染
  8. 动态规划之零一背包问题
  9. C++字符串完全指南---转载的
  10. 在智慧农业领域需要研究什么(智慧农业,现代农业,数字农业解决方案)