#无FIFO驱动OV7670基于cubemx(草稿)

1.前言

之前在淘宝买了一个不带FIFO的OV7670,由于比赛和其他事一直搁置,现在有时间于是想玩一玩。我发现网上这个的教程多为标准库,有些甚至利用了DCMI(数字摄像头接口,目前已知F4系列是有这个外设的)。标准库以及使用硬件外设使得它的移植不是那么友好,加上今年来ST官方大力推广HAL库以及CUBEMX的使用,于是我决定做一个CUBEMX驱动这个的教程。

无FIFO的OV7670更加考验单片机性能,并且坑比较多,大家如果还没有买,不要和我一样贪便宜买不带FIFO的

实物:

比较新的博客:

STM32F103C8T6基于库函数 驱动无FIFO的OV7670摄像头_stm32f103c8t6摄像头-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/sd3870582/article/details/136192947

2.设备

(1)单片机

STM32G474RET6,准备使用IO直驱,因为它没有DCMI接口,模拟的方式更加好移植。

(2)无FIFO的OV7670引脚定义

SCL-----------------------------------时钟线(SCCB)

SDA-----------------------------------数据线(SCCB)

VS-------------------------------------帧数据线(图像输出),信号出现说明一帧图像传输完成

HS-------------------------------------行数据线(图像输出),信号出现说明一帧图像的一行传输完成

PCLK---------------------------------像素时钟(OV7670输出给STM32

MCLK---------------------------------输入时钟(STM32输入给OV7670),使用MCO输入24MHz

D0到D7-------------------------------数据接口(图像信号输出给单片机)

(3)无FIFO的OV7670数据传输扫描方式

从左到右,从下到上

(4)使用的上位机

 直接显示在LCD屏幕上跨度太大,中间会出很多问题,我们先将图像输出到电脑上观察。一步一步慢慢来,华军软件园一般流氓软件较少。

山外多功能调试助手官方下载_山外多功能调试助手最新版_山外多功能调试助手1.1.1绿色版-华军软件园 (onlinedown.net)icon-default.png?t=N7T8https://www.onlinedown.net/soft/633190.htm

3.需要掌握的知识

(1)SSCB

这个是用来设置OV7670的,跟IIC很像,但不是同一个东西。SCCB有一个EN线,但是在OV7670中被省略了,因为没有必要。

参考文章

SCCB总线协议的详细讲解与程序实现-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/weixin_44509533/article/details/106053822

接口线

 起始时序

 

 结束时序

(2)部分问题踩坑解决

STM32驱动OV7670(无FIFO)相关问题的解决_ov7670怎么接stm32f103-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/wing_man/article/details/124070432

4.驱动的第一步

由于这种传感器本身并不算简单,所以要做好付出大代价的准备。一步一步来,确保每一步的成功运行。

(1)读取OV7670的ID

参考文章

ov7670读取ID成功(不带FIFO),记录注意事项_ov7670的id-CSDN博客icon-default.png?t=N7T8https://blog.csdn.net/qq_43145360/article/details/120224741

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/630449.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

单链表的基本操作实现:初始化、尾插法、头插法、输出单链表、求表长、按序号查找、按值查找、插入结点、删除结点。

1.参考学习博文(写的相当好的文章): http://t.csdnimg.cn/AipNl 2.关于我的总结: 定义单链表: typedef struct LNode {Elemtype data;struct LNode* next; }LNode; data用来存放元素值,next用来指向后…

[Vision Board创客营]学习片上Flash移植FAL

文章目录 [Vision Board创客营]学习片上Flash移植FAL介绍环境搭建使用组件测试porbeerasewriteread 结语 [Vision Board创客营]学习片上Flash移植FAL 水平较菜,大佬轻喷。😰😰😰 介绍 🚀🚀Vision-Board 开…

高仿小米商城用户端

高仿小米商城用户端(分为商城前端(tongyimall-vue)和商城后端(tongyimall-api)两部分),是Vue SpringBoot的前后端分离项目,用户端包括首页门户、商品分类、首页轮播、商品展示、商品推荐、购物车、地址管理、下订单、扫码支付等功能模块。 …

单链表-通讯录

目录 单链表实现 通讯录代码实现 初始化 初始化函数 添加 删除 展示 查找 修改 销毁 代码展示 main.c text.c text.h list.c list.h 和前面的通讯录实现差不多这次就是实现一个以单链表为底层的通讯录 单链表实现 数据结构:单链表-CSDN博客 通讯…

Springboot+Vue项目-基于Java+MySQL的高校心理教育辅导系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

现在给政府机关医院学校部队供货的方式有哪些?

给政府机关、医院、学校和部队供货的方式主要包括以下几种: 直接采购:政府机关、医院、学校和部队通过招标或直接与供应商进行谈判,确定采购的产品和价格。这种方式常见于大宗或重要物资的采购,能够确保采购过程的透明度和公正性…

【笔试强训】双指针的思想!

1.数组中字符串的最小距离 题目链接 解题思路&#xff1a; 小技巧 ✌&#xff1a;标记两个字符串是否被找到&#xff0c;每次找到一个字符串就更新一次答案来保证找到的是最小距离。 实现代码&#xff1a; #include <iostream> using namespace std;int main() {in…

阿斯利康、赫力昂、京东健康、宝洁等行业大咖齐聚2024中国消费者健康数字创新峰会

随着健康中国2030战略规划不断推进&#xff0c;消费者健康市场发展也日趋强劲&#xff0c;体现出健康消费意识提前&#xff0c;自我健康管理意识增强的局面。后疫情时代下&#xff0c;消费者健康市场呈现出卓越的韧性与活力。 由ECV International倾力打造的2024中国消费者健康…

微服务之CircuitBreaker断路器

一、概述 1.1背景 在一个分布式系统中&#xff0c;每个服务都可能会调用其它的服务器&#xff0c;服务之间是相互调用相互依赖。假如微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其他的微服务。这就是构成所谓“扇出”。 如果扇出的链路上某个微服务的调…

Goland远程连接Linux进行项目开发

文章目录 1、Linux上安装go的环境&#xff12;、配置远程连接3、其他配置入口 跑新项目&#xff0c;有个confluent-Kafka-go的依赖在Windows上编译不通过&#xff0c;报错信息&#xff1a; undefined reference to __imp__xxx似乎是这个依赖在Windows上不支持&#xff0c;选择让…

MES给制造业带来看得见的效益

作为连接生产控制系统和企业管理系统的纽带&#xff0c;MES为企业提供实时生产数据&#xff0c;帮助企业进行更加明智的决策&#xff0c;并实时调整生产管理&#xff0c;最终降低运营成本、提高运营利润和资产利用率、保证生产安全与合规。 MES主要功能包括工艺技术管理、生产…

Tomcat和Spring Boot配置https

生成测试证书 生成证书前&#xff0c;先验证本地是否正确配置jdk环境变量&#xff0c;如果jdk环境变量配置正确&#xff0c;在命令行程序输入生成证书的命令。 keytool -genkey -alias tomcat -keyalg RSA -keystore "F:\job\apache-tomcat-8.5.29\key\freeHttps.keysto…