OV2640读ID全是FF问题

最近刚好在Cyclone IV上通过LVDS把一个7寸的屏点亮,赶着热度,淘宝买了OV2640这个摄像头模块,初始化因为用Vrilog比C复杂得多,易调试性不如C,所以使用STM32初始化,模块有F3和F4的参考例程,但自己手上只有一块F03的最小系统板,参考了两个参考例程移植了SCCB的基础代码,做第一步测试,读模块ID发现一直读到0xFF,检查了好多遍代码,逻辑分析仪抓波形,协议都没有问题,SCCB的第九位该有响应也有了的,但是数据就是不对。后面只能回去仔细读官方提供的SCCB技术手册,发现下面这么一句话:

跟着这么一句话,突然意识到去检查自己初始化IO时的处理,果然,我的IO初始化把SIO_D引脚设置成推挽输出了,更改为开漏输出,编译下载验证,果然能正确读到ID了,另外值得注意的是,在第一次调试中发现SCCB发送ID后第九位没有应答,应该注意检查PWDN是否已经拉低了,因为该信号是置高有效,也就是说如果PWDN为高电平,模块会一直处于Power down状态,自然不会理你。下面放一个完整的读写波形供参考

                                         

原文地址:https://www.cnblogs.com/DPShadow/p/12151748.html

时间: 2024-08-25 10:55:02

OV2640读ID全是FF问题的相关文章

Java中SnowFlake 雪花算法生成全局唯一id中的问题,时间不连续全为偶数解决

package com.example.springbootshardingjdbc.util; import java.io.FileOutputStream; /** * 描述: Twitter的分布式自增ID雪花算法snowflake (Java版) * * @author * @create 2018-03-13 12:37 **/ public class SnowFlake { /** * 起始的时间戳 */ private final static long START_STMP

在读程序时遇到的一些问题

static在C/C++中的作用?有初始化值的作用吗?1.先来介绍它的第一条也是最重要的一条:隐藏 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性.如果加了static,就会对其它源文件隐藏.2.static的第二个作用是保持变量内容的持久. 存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化.共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用

bootstrap +angualrJS(全选/反选)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <link rel="stylesheet" href="./css/bootstrap.min.css"> <script type="text/javascript"

[读码][js,css3]能感知鼠标方向的图片遮罩效果

效果图: 无意间看到过去流行的一个效果:[能感知鼠标方向的图片遮罩效果]近来不忙,就仔细的看了一看看到后来发现,网上有好多版本,谁是原著者似乎已经无法考证.读码就要读比较全面的,读像是原著的代码.代码随然不难,不过要能想到这个创意,并成功应用却很难! 另外,对于初学者,这也是不错的学习例子.含Jquery插件写法,css3等 英文教程:http://tympanus.net/TipsTricks/DirectionAwareHoverEffect/源码下载:http://tympanus.net

基于TCP连接的OV2640图像实时传输的STM32程序

不多说话 Show you the code. 其中TCP的封包使用了大神造的轮子,直接拖过来用. main.c /*********************************************************************** 文件名称:main.C 功 能: 编写时间: 注 意: ***********************************************************************/ #include "main.h&qu

SQL Server 2008 R2——内连接 左连接 右连接 全连接 交叉连接

SELECT * FROM Table_A GO SELECT * FROM Table_B GO --内连接 SELECT a.*, b.* FROM Table_A a JOIN Table_B b ON a.ID = b.ID SELECT a.*, b.* FROM Table_A a INNER JOIN Table_B b ON a.ID = b.ID GO --内连接等价直接多表from的形式 SELECT a.*, b.* FROM Table_A a INNER JOIN Ta

JS 全选反选功能

全选按钮:<input type=\"checkbox\" id=\"cheSelectAll\" />选择</li>"); 选择项:<input name=\"chkItem\" type=\"checkbox\" value=\"" + this.ID + "\" /> //全选反选 $("#cheSelectAll"

ListView最全知识点总结1

ListView知识 应该说没有几个从事android开发的人员能敢说自己完全掌握了ListView.本篇文章比较全面的总结了lisiview中容易被忽略但有用的基础知识点(不包括如何在异步加载数据的情况下做到流畅等高级用法).文章写于2012年,但是仍然不过时,网上很多转载,但真正出处是: http://ldl8818.iteye.com/blog/1346501 原文如下 在ListView中设置Selector为null会报空指针? mListView.setSelector(null);

为什么全表扫描成本(COST)公式里面要除以sreadtim

全表扫描的成本计算公式 如下: Cost = ( #SRds * sreadtim + #MRds * mreadtim + CPUCycles / cpuspeed ) / sreadtim 全表扫描的时候,单块读次数=0,#SRds表示单块读次数.全表扫描的成本里面,CPU消耗其实非常少,可以忽略不计,所以全表扫描的公式可以改写为: Cost = #MRds * mreadtim / sreadtim #MRds 表示多块读io次数 mreadtim 表示一次多块读耗费时间 sreadtim