死磕到底2—STM32F407驱动无FIFO无时钟ov7670

发布者:变形金刚最新更新时间:2020-08-12 来源: 51hei关键字:STM32F407  驱动  FIFO  ov7670 手机看文章 扫描二维码
随时随地手机看文章

上次的F103驱动OV7670究竟没有实用价值,我又买了一块STM32F407开发小板,
驱动了无FIFO无时钟ov7670,320*240每秒28帧(应该还可以快点)。


感觉到这个方案比用有FIFO的划算,STM32F407开发小板+ov7670=60元左右。


一、407带摄像头接口,取摄像头数据由片内硬件操作,超爽。


二、我用示波器看PA8输出时钟,幅度很小,这不是程序问题,是示波器频率不够,
      调试时候不要怀疑这个信号。我在这里白白纠结了几天。


三、摄像头相关的口线比较多,一根口线多处设置,还有硬件连接的问题,容易出错。
       调式时候可以一步一步来,先调SCCB,把摄像头初始化搞OK,再调直接读取图像数据,这样,端口和线路连接都没有问题了,就可以进入第三步,上DCMI和DMA。


        //ov7670_GPIO2_Init();        //老的端口输入设置
        //camera_refresh();   //老的取数操作

     这两句就是直接取数据,不用DCMI和DMA。

int main(void)
{

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
        delay_init(168);  //初始化延时函数
        uart_init(115200);                //初始化串口波特率为115200
//   usart2_init(42,115200);                //初始化串口2波特率为115200
        LED_Init();                                        //初始化LED
         LCD_Init();                                        //LCD初始化  
  //        KEY_Init();                                        //按键初始化
        
         TIM3_Int_Init(10000-1,8400-1);//10Khz计数,1秒钟中断一次        //打印帧率
        
//          TIM1_PWM_Init();
//          usmart_dev.init(84);                //初始化USMART
        
         POINT_COLOR=RED;//设置字体为红色         
        
        LCD_ShowString(30,130,240,16,16,"OV7670 Init?");
        
        
        while(OV7670_Init())//初始化OV7670
        {
                LCD_ShowString(30,130,240,16,16,"OV7670 ERR");
                delay_ms(200);
          LCD_Fill(30,130,239,170,WHITE);
                delay_ms(200);
        }
        
        LCD_ShowString(30,130,200,16,16,"OV7670    OK   ");
        delay_ms(1500);        
               
        OV7670_Window_Set(12,176,240,320);//OV7670设置输出窗口
        //OV7670_Color_Saturation(4);//颜色饱和度
        
  //ov7670_GPIO2_Init();        //老的端口输入设置
        //camera_refresh();   //老的取数操作
        
         My_DCMI_Init();                        //DCMI配置
         DCMI_DMA_Init((u32)&LCD->LCD_RAM,  10,  DMA_MemoryDataSize_HalfWord,  DMA_MemoryInc_Disable);//DCMI DMA配置  
         DCMI_Start();                 //启动传输
         
         while(1)
        {        

        }
}


例程来源于正点原子,特此感谢!

关键字:STM32F407  驱动  FIFO  ov7670 引用地址:死磕到底2—STM32F407驱动无FIFO无时钟ov7670

上一篇:[零基础学习STM32]第四讲:UART通讯实验—控制LED
下一篇:详细stm32f103c8t6引脚说明中文

推荐阅读最新更新时间:2024-11-13 21:30

英飞凌推出简单易用的 LCC 设计工具,赋能高效 LED 驱动器设计
【2023 年 6 月 9日,德国慕尼黑讯】在全球电力消耗中,照明用电占据很大比例,因此照明领域的节能至关重要。事实证明, PFC + LCC 谐振拓扑结构是LED 照明应用(如商业照明,户外照明和植物照明等)的优秀方案: • 支持恒流/恒压/恒功率设计 • 达到与PFC+LLC同等的高效率 • 支持很宽的输出电压范围 为了便于工程师的设计,英飞凌(FSE 代码:IFX / OTCQX 代码:IFNNY)推出了 LCC 设计工具,让工程师的设计工作变得更快速、更轻松。 英飞凌科技全球照明应用市场主管Hakan Yilmazer 表示:“我们全新的 LCC 设计工具为设计人员提供了一个精简的解决方案,
[电源管理]
英飞凌推出简单易用的 LCC 设计工具,赋能高效 LED <font color='red'>驱动</font>器设计
micro2440利用LEDS与BUTTONS驱动实现按键控制led灯【开发总结】
最近玩友善之臂的micro2440,实现了按键控制led灯亮灭的功能。在这里总结一下,有什么错误希望高手们能指点一下,同时也希望能够帮到刚学驱动的新手。 首先贴出leds驱动程序: #include linux/miscdevice.h #include linux/delay.h #include asm/irq.h #include mach/regs-gpio.h #include mach/hardware.h #include linux/kernel.h #include linux/module.h #include linux/init.h #include lin
[单片机]
micro2440利用LEDS与BUTTONS<font color='red'>驱动</font>实现按键控制led灯【开发总结】
如何使用C8051F020单片机去驱动控制触摸屏
触摸屏是目前最简单、方便、自然的而且又适用于中国多媒体信息查询国情的输入设备,它具有坚固耐用、反应速度快、节省空间、易于交流等许多优点。触摸屏技术被认为是未来人机交互科技的主流方向之一,相关的产业及其产品的应用也正在成为一个热点。但是传统的触摸屏因为成本比较高而难以适用到更广泛的工业控制设备中,目前武汉谷鑫科技的触摸屏设计方案而能够很好的解决这个难题,利用触摸屏、 单片机 和液晶屏搭建了一个人机界面系统。 在用C8051F020实现对TFT6448BS-5.7的控制过程中,采用总线方式进行控制。因为TFT6448BS-5.7液晶控制器自带有锁存功能,所以在使用总线方式进行控制时并不需要外加锁存芯片,只须使用单片机C80
[单片机]
变频器驱动与工频驱动的区别 变频器对电机的损伤有何影响
很多人已经发现了变频器对电机损伤的现象。例如,某水泵厂,近两年来,他的用户频繁报告水泵在保修期内发生损坏的现象。而过去,这个水泵厂的产品质量十分可靠。经过调查,发现这些损坏的水泵都是用变频器驱动的。 变频器的出现为工业自动化控制、电机节能带来了革新。工业生产中几乎离不开变频器,即使在日常生活中,电梯、变频空调也成为不可缺少的部分,变频器已经开始渗入到生产、生活的各个角落。然而,变频器也带来了许多前所未有的困扰,其中损伤电机就是最典型的现象之一。 很多人已经发现了变频器对电机损伤的现象。例如,某水泵厂,近两年来,他的用户频繁报告水泵在保修期内发生损坏的现象。而过去,这个水泵厂的产品质量十分可靠。经过调查,发现这些损坏的水泵都是用
[嵌入式]
变频器<font color='red'>驱动</font>与工频<font color='red'>驱动</font>的区别 变频器对电机的损伤有何影响
LPC21XX系列ARM7驱动RTC RX8025(I/O模拟IIC)
/****************************************************************************************** * 函数名称 :I2C_Delay * 功能描述 : * 参数 : 参数名称: 输入/输出? 类型 描述 * * 返回值 : * 作者 : * 创建日期 :2006-12-19 * 全局变量 : * 全局静态变量: * 局部静态变量: *----------------------------------------修改历史------------------------------------------ * 当前版本 :
[单片机]
字符驱动编写小结(基于mini2440,LED驱动
编程:需要什么功能(机制)、如何使用这些功能(策略) 作为驱动程序编写者,我们需要在所需的编程时间以及驱动程序的灵活性之间选择一个可接受的折中。读者可能奇怪于说驱动程序“灵活”,我们用这个词实际上是强调设备驱动程序的作用在于提供机制,而不是提供策略。 机制mechanism,策略policy。如果你看过《linux device drivers》,里面给出了大概的介绍。机制提供了干什么(do what),策略提供如何做(how to do)。驱动程序完成机制的功能,把策略的实现留给用户的应用程序。通常在机制中,驱动程序要完成打开,关闭,读写,控制等功能。这些都是设备使用时最基本的操作。而策略中就要实现一些高级的数据处
[单片机]
技术控:LED基本驱动照明电路设计解析
  LED 因其应用广泛,价格公道,而被业界广泛采用,不管是节日的装饰灯还是家庭使用的各种灯具要用到LED的驱动电路,因为它降低的能源的消耗,可长期稳定的工作,今天我就从一个实用的LED电路给大家延伸性的介绍 LED照明 驱动电路。   发光二极管(LED)因其具有高效、节能、寿命长、环保等特点,已成为现今 照明 技术的可选方案,并逐渐被应用于照明。促使人们关注LED照明技术的一个关键因素是,其大大降低了能源的消耗,并可实现长期可靠的工作。    本文先从采用恒流源的电路开始, 本电路中的主要元件三极管,要求其耐压要400V以上,功率也要10W以上的大功率管,如MJE13003、MJE13005等,并且要加上散热片,滤波电容C
[电源管理]
技术控:LED基本<font color='red'>驱动</font>照明电路设计解析
探讨LED照明驱动电源的相关问题
  为了节能省电,LED得到了很大的推广,但LED都需要有个电源驱动,其好坏会直接影响LED的寿命,因此如何做好一个LED驱动电源是LED电源设计者的重中之重。本文介绍了一些LED驱动电源的问题,希望能够对工程师提供一点帮助。   1、驱动电路直接影响LED寿命   我们所说的LED驱动包括数码驱动和类比驱动两类,数码驱动指数字电路驱动,包括数字调光控制,RGB全彩变幻等。类比驱动指类比电路驱动,包括AC恒流开关电源,DC恒流控制电路。驱动电路由电子元件组成,包括半导体元件,电阻,电容,电感等,这些元件都有使用寿命,任何一个器件失效都会导致整个电路的失效或者部分功能失效。 LED的使用寿命是5-10万小时,按5万小时算,连续点
[电源管理]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved