基于STM32F407的摄像头(不带FIFO的OV7670)图像采集及LCD显示实验-笔记整理

STM32F407-OV7670(无FIFO)-ONENET-实现摄像头画面上传到onenet(EDP协议) EDP协议 EDP协议文档说明:https://leoeinstein.lanzous.com/ifX1Ckfkaaf 服务器登录 登录流程: (1)客户端发送连接请求(CONN_REQ) (2)服务器验证请求的合法性 (3)服务器发送一个回执(CONN_RESP)给客户端 其中请求包含三部分:消息头、选项和消息体。 1、消息头 包括消息的类型和剩余消息长度。 2、选项 包括协议名称、协议版本、连接标志、保持连接时间。 3、消息体 可能包含设备ID、用户ID(可选)、鉴权信息(看采取什么方式登录)。 设备 阅读详情

硬件说明

STM32F4开发板

stm32f4系列的芯片处理的能力可以说非常强大了的,而且内部还自带有数字摄像头接口(DCMI),可以说stm32f407的核心板和不带FIFO的摄像头模块OV7670简直就是绝配!

我手上的这块张这个样子 (图片来源:某宝):
在这里插入图片描述
在这里插入图片描述

F4系列的DCMI接口内部结构框图如下图3所示,具体的配置使用方式可以参考以下这篇博文:《stm32f4的数字摄像头接口(DCMI)使用》

这位博主大大已经很详细地介绍了DCMI接口的具体使用方法和原理,更重要的是里面还有接口的配置函数,虽然不完全一样,但是非常具有参考意义!
图3

TFT-LCD屏幕

LCD屏幕用的是原子哥的TFT-LCD 屏幕,去年学STM32F103的时候随便买的一块液晶屏幕,分辨率就是320*240,驱动IC是ILI9341(ID9341)。

长这个样子(图片来源:原子哥):
在这里插入图片描述
对应资料链接:https://leoeinstein.lanzous.com/iApMql9yzkj

资料有点大哈,因为这个资料有可能是最全的LCD驱动IC资料包了。(这句话很小米)

摄像头OV7670

OV7670摄像头模块的体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能,因为我这个不带FIFO芯片,所有还特便宜,但是像素不算太高。(这个价钱也还是可以了)

通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据。该产品VGA图像最高达到30帧/秒。用户可以完全控制图像质量、数据格式和传输方式。

摄像头模块长这个样子(图片来源:某宝):
在这里插入图片描述
OV7670中文资料手册:
https://wenku.baidu.com/view/e60f19ea81c758f5f61f67df.html

硬件连接说明

开发板上有一个TFT-LCD的接口,你如果手上有这样的屏幕就可以直接插上去使用了,如果用的的原子哥的屏幕的话,就需要稍微外接一些线了。

我直接用杜邦线连的,有“亿点点”乱哈。
在这里插入图片描述

LCD与STM32

LCD MCU LCD MCU
CS PG12 RS PF12
WR/CLK PD5 RD PD4
RST RST D0 D0
D1 D1 D2 D3
D3 D3 D4 D4
D5 D5 D6 D6
D7 D7 D8 D8
D9 D9 D10 D10
D11 D11 D12 D12
D13 D13 D14 D14
D15 D15 GND GND
BL PB15 VCC3.3 3.3V
VCC3.3 3.3V GND GND
GND GND BL_VDD 5V
MISO MI MOSI MO
T_PEN PB1 MO -------
T_CS PC13 CLK PB0

在这里插入图片描述

OV7670与STM32

可以参考这篇博文:https://blog.csdn.net/LiangWF22/article/details/112676289
在这里插入图片描述

编程实现

编程要点、思路

一、摄像头配置
无FIFO的摄像头需要注意 时钟配置和窗口配置,否则不能出图像;

二、DCMI配置
DCMI需要配置成 DMA传输模式和使用行场中断进行图像数据采集,同时需要注意DCMI硬件同步的行场信号以及像素信号的上升沿和有效电平。

可以参考上面那篇《stm32f4的数字摄像头接口(DCMI)使用》博文。

具体代码

dcmi.c

#include "sys.h"
#include "dcmi.h" 

u8 ov_frame=0;  						//帧率
u32 datanum=0;
u32 HSYNC=0;
u32 VSYNC=0;
DCMI_InitTypeDef DCMI_InitStructure;

//DCMI 初始化
void DCMI_DMA_Init(void)
{
   
    
	DMA_InitTypeDef  DMA_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2,ENABLE);//DMA2时钟使能 
	DMA_DeInit(DMA2_Stream1);
	while (DMA_GetCmdStatus(DMA2_Stream1) != DISABLE){
   
   }//等待DMA2_Stream1可配置 
	
  
	DMA_InitStructure.DMA_Channel = DMA_Channel_1;  //通道1 DCMI通道 
	DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)&DCMI->DR;//外设地址为:DCMI->DR  摄像头
	DMA_InitStructure.DMA_Memory0BaseAddr = (u32)&LCD->LCD_RAM;//DMA 存储器0地址 lcd
	DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralToMemory;//外设到存储器模式 搬运数据:摄像头->lcd
	DMA_InitStructure.DMA_BufferSize 
基于STM32F407摄像头实验(有代码) 1.OV2640 简介 OV2640 是 OV(OmniVision)公司生产的一颗 1/4 寸的 CMOS UXGA(16321232)图像 传感器。该传感器体积小、工作电压低,提供单片 UXGA 摄像头和影像处理器的所有功能。通 过 SCCB 总线控制,可以输出整帧、子采样、缩放和取窗口等方式的各种分辨率 8/10 位影像 数据。该产品 UXGA 图像最高达到 15 帧/秒(SVGA 可达 3... 阅读详情

相关推荐

不带FIFO的OV7670与STM32F407图像采集实战:DCMI+DMA驱动与LCD显示

嵌入式视觉开发中,摄像头图像采集是常见的工程需求,而主控如何高效接收并行像素数据往往决定系统稳定性。STM32F407凭借内置的DCMI数字摄像头接口和DMA控制器,能够在不依赖外部FIFO缓冲的情况下,直接对接OV7670这类流行传感器。DCMI负责按像素时钟捕获数据,DMA则在无CPU干预下将数据搬运至内存,二者配合可显著降低处理器负载。这种方案不仅适合实时显示场景,也为颜色识别等轻量级视觉应用提供了硬件基础。针对不带FIFO的OV7670模块,通过合理配置同步信号极性、像素格式和DMA缓冲策略,即可在

weixin_29174013的博客 244

STM32F407不带FIFO OV7670图像采集:DCMI与DMA协同实战

嵌入式图像采集是物联网与智能硬件开发中的高频需求,其中摄像头传感器与主控之间的数据通路设计尤为关键。OV7670作为经典CMOS图像传感器,其输出格式、同步时序和像素时钟控制是开发者必须掌握的基础知识。在不带FIFO的模块中,像素数据仅在单个时钟周期内有效,这对主控的硬件接口提出了严苛要求,此时DMA(直接内存访问)和专用摄像头接口DCMI便成为解决高速数据搬运的核心机制。DCMI利用硬件同步信号自动捕获帧与行数据,DMA则以双缓冲模式实现零CPU干预的连续传输,有效避免画面撕裂与帧丢失,显著提升采集实时性

weixin_29179311的博客 259

电赛备赛指南:从材料清单到系统实现的全流程解析

嵌入式系统开发是连接硬件与软件的核心技术领域,其原理在于通过微控制器协调传感器、执行器等外设,实现特定的测量、控制或通信功能。这项技术的价值在于能够将抽象的需求转化为稳定、高效、可量化的物理系统,广泛应用于智能控制、物联网、机器人等场景。在电子设计竞赛等实践项目中,系统性的工程能力尤为关键。参赛者需要精准解读材料清单中主控、传感器、执行器等器件的组合线索,并将其与题目要求进行映射,从而完成从需求分析、模块选型、算法实现到软硬件联调的全过程。本文以典型的控制类赛题为例,深入剖析了如何运用PID控制算法和图像处

336

电赛控制类备赛指南:从核心能力到硬件选型与系统集成

在嵌入式系统与自动控制领域,构建一个稳定可靠的控制系统是工程师的核心能力。其基本原理通常遵循“感知-决策-执行”的闭环架构,涉及传感器数据采集、控制算法运算与执行机构驱动。这一架构的技术价值在于能够实现对物理世界的精确、自动化干预,是机器人、智能车、工业自动化等应用场景的基石。要实现这一闭环,工程师需要熟练掌握微控制器(如STM32)的外设驱动、经典控制算法(如PID控制及其抗积分饱和等高级变体)以及多传感器数据融合技术。其中,**多传感器融合**和**视觉反馈**是当前提升系统智能性与鲁棒性的关键技术热点

weixin_34342905的博客 484

嵌入式工程师成长之路(1)——元件基础(完整版)

为什么你的电路总是“玄学”故障?答案藏在这些元件里! 0欧电阻竟能引发信号反射?5V转3.3V电平匹配失败导致MCU烧毁?电容降压设计让电源“滋滋”响?——这些坑,本文全填平! CSDN硬件领域头部博主十年踩坑经验汇总,覆盖电阻、电容、电感核心难点+高频实战问题,让你从“调试地狱”直通“一次成功”!

云轩阁 2万+

STM32F407驱动OV7670摄像头:从SCCB配置到DCMI采集与FIFO避坑指南

嵌入式图像采集系统中,摄像头驱动与接口时序的匹配是核心挑战。SCCB协议负责配置OV7670内部寄存器,DCMI接口则通过DMA搬运图像数据,两者协同工作但初始化顺序与极性设置必须严格一致。FIFO缓存可解耦采集与显示速率,但读写指针复位时序不当会导致图像偏移或撕裂。掌握这些原理后,可应用于智能小车视觉、工业检测等场景。本文围绕STM32F407与OV7670的经典组合,提供一份可复现的完整工程,涵盖SCCB配置、DCMI时序、FIFO控制及常见花屏、全黑问题的排查方法。

weixin_29164185的博客 228

STM32F407+OV7670摄像头实战:DCMI与DMA图像采集全解析

在嵌入式开发中,图像采集一直是门槛较高的方向,而掌握从传感器到内存的数据通路是核心。DCMI接口和DMA传输机制为高性能图像采集提供了硬件基础,SCCB总线则负责配置传感器寄存器。理解这些原理后,开发者可快速实现摄像头图像数据的高效搬运,广泛应用于智能车视觉、简易识别等场景。本文以STM32F407驱动OV7670为例,详细讲解DCMI配置、DMA双缓冲、SCCB时序等关键点,并分享硬件接线、初始化和排错经验,帮助读者从零构建一套完整的嵌入式图像采集系统,为后续视觉应用开发打下坚实基础。

weixin_34216614的博客 217

STM32F407摄像头驱动:DCMI采图到LCD显示避坑要点

嵌入式图像采集是物联网与视觉应用的基础环节,其核心在于摄像头接口与主控外设的协同配置。以常见的数字摄像头为例,传感器通过并行数据线与同步信号输出图像帧,主控端则依赖专用接口完成像素采样与数据搬运。DCMI作为STM32系列集成的相机接口,负责按像素时钟捕获数据并配合DMA实现高速传输;而DMA双缓冲机制则能有效避免采集与处理间的相互等待,保障画面流畅性。理解这些底层原理,开发者便能快速定位花屏、偏色或帧率异常等高频问题。在实际工程中,基于STM32F407驱动OV2640摄像头模组,通过SCCB总线配置寄存

weixin_30872577的博客 225

STM32+OV7670黑白二值化实战:从硬件到OTSU算法详解

图像处理在嵌入式视觉中占据基础地位,其中将彩色图像转换为黑白二值图是车牌识别、循迹小车、条码检测等应用的关键预处理步骤。理解像素格式转换、灰度化与阈值分割原理,能帮助开发者设计出更稳定的视觉系统。基于STM32与OV7670摄像头,可通过DCMI接口采集RGB565数据,利用整数近似算法将RGB转为灰度,再结合固定阈值或OTSU大津法实现自适应二值化。该方案在无外部AI加速芯片的MCU上即可运行,适合入门级嵌入式视觉实验。本文以实际项目为例,完整梳理了从寄存器配置、DMA双缓冲抓图到算法移植的链路,并分享了

weixin_29164843的博客 293

STM32+OV2640+ESP8266视频监控实战指南

嵌入式系统开发中,视频监控是一个典型的综合应用场景。通过摄像头采集图像数据,主控芯片处理后进行传输与显示,涉及DCMI数字摄像头接口、FATFS文件系统、WiFi无线传输等多个技术模块。基于STM32F407与OV2640的方案,利用DCMI+DMA实现JPEG图像高效采集,结合ESP8266完成数据透传,能够在低成本、低功耗条件下构建可复制的轻量监控系统。此类方案广泛应用于课设、毕设、小型安防、远程查看等场景,尤其适合需要深入理解硬件底层原理的开发者。文章从选型、硬件设计到代码实现,系统梳理了一套完整的S

weixin_29168675的博客 255

OV7670(DCMI)无FIFO、晶振 F407开发板显示

STM32F407ZG开发板显示摄像头OV7670(DCMI)无FIFO、晶振 ,使用开发板晶振输出方式给摄像头提供工作晶振,通过更改原子OV2640的接受方式已经能够完美显示摄像头数据。已更改积分要求 2022-7-13

ov7670(无fifo,上位机显示)

ov7670(无fifo,上位机显示)

DCMI.zip_DCMI_dcmi全称_dma 缓冲_f407DCMI_stm32f407 dcmi

STM32F407DCMI摄像头模式配置,双缓冲DMA模式,单模式DMA配置都有

STM32F407驱动OV2640摄像头【DCMI接口方式_支持STM32F4系列单片机】.zip

STM32驱动OV2640摄像头。 项目代码可顺利编译运行~

OpenClaw Docker 安装问题解决全记录

控制面板无法加载(WebSocket 错误) | 确认 Nginx 配置中的 `Upgrade` 和 `Connection` 头正确 || 网关容器无法启动 | `docker compose logs openclaw-gateway`,检查权限、镜像名 |如需消除,使用 Let's Encrypt |- `<your-token>`:你的 OpenClaw 网关令牌(如 `b0e5ab...`)将 `<nas-ip>` 替换为你的群晖内网 IP(例如 `192.168.1.100`)。

u014490376的博客 2302

手把手教你用AirSim和Unreal4在Ubuntu上创建自定义无人机仿真场景

本指南详细介绍了如何在Ubuntu系统上使用AirSim和Unreal Engine 4搭建高精度无人机仿真环境。从硬件配置、驱动安装到Unreal Engine编译和AirSim集成,手把手教你创建自定义场景,适用于算法验证和开发测试。

y7z8a的博客 250

【规则引擎连载3】 WebSphere ILOG JRules 开发——新建一个规则项目

规则项目依赖于bom,bom来自于一个Java项目,所以在建规则项目之前,需要先建立一个Java项目,也就是建模。 说明:原则上是一个规则项目,一个bom。如果规则项目很多,并且每个规则项目的bom都是一样的,那么可以将bom提取出来,单独作为一个项目,这样减少不必要的重复操作,减少维护成本,降低出错几率。这里逐步讲解两种方法来创建规则项目,推荐第二种。 本文主要建立两种规则项目与bom之间的关系,编写相关的规则内容,如操作规则、规则流、决策表等,在后续文章中详细讲解 。

manman的分享 2325

51单片机通过计时器实现倒计时

51单片机通过计时器操作两位8段阳极数码管,实现倒计时

一份耕耘,一分收获 3万+

STM32 SAES硬件加密协处理器全模式工程实践指南

AES(高级加密标准)是嵌入式系统中最基础且关键的对称密码算法,其硬件加速实现直接影响安全、性能与功耗平衡。Secure AES Coprocessor(SAES)作为STMicroelectronics在STM32U5等高安全MCU中集成的专用密码协处理器,不仅支持标准ECB/CBC/CTR模式,更原生兼容GCM和CCM等认证加密模式,具备抗侧信道、密钥保护与DMA卸载能力。理解其寄存器状态机(CHMOD/MODE/CPHASE)、NPBLB数据对齐机制及GCM四阶段编程范式,是规避Tag校验失败、IV错

weixin_42311427的博客 70

ABAP CDS View 从入门到精通教程目录:ABAP CDS View 在 SAP 技术体系中的重要地位

学习 ABAP CDS View 的开发技术,体会其背后的设计理念,也就掌握了 SAP S/4HANA 底层数据模型的设计精髓。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 4726

YOLOv5源码逐行超详细注释与解读(1)——项目目录结构解析

全网最全YOLOv5项目目录结构超详细分析。逐个文件注释,小白上手必备

路人贾的博客 9万+

Kylin操作系统下OpenLDAP安装

Kylin操作系统下OpenLDAP安装

跟着大数据和AI去旅行 1607

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: 【PCB】基于STM32F103RCT6摇杆-蓝牙模块开发板-画板笔记整理
下一篇: OPT101单片光电二极管和单电源互阻放大器使用说明
LiangWF22
博客等级 码龄8年 197粉丝 28原创
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值