STM32F103C8T6驱动ov2640拍照串口传输到上位机

2019-03-18来源: eefocus关键字:STM32F103C8T6  驱动ov2640  串口传输  上位机

使用环境(蓝色粗体字为特别注意内容)


1、软件环境:Keil MDK 5.15


2、硬件环境:STM32F103C8T6最小系统,OV2640摄像头模块


最近想玩玩摄像头,于是在网上找找性价比比较高的摄像头,之前用过OV7670这款摄像头,不过这款摄像头对单片机要求较高,一般的单片机驱动起来非常费劲,除非ARM级别的微处理器才能够胜任。要想使用低端单片机驱动的话需要加上FIFO模块,一加上这玩意价格就翻了3倍。。。。原来20块钱的东西涨到了70+,我的天。。。。于是找了大半天,终于找到OV2640这款摄像头,这摄像头是我目前遇到的性价比最高的摄像头了,竟然支持直接输出JPG格式的图片,最高支持1600*1200(200W)像素!!!价格只有带FIFO的OV7670摄像头的一半!而且STM32F103系列单片机就能够轻松驱动(前提是SRAM足够大)。


于是决定使用性价比比较高的STM32F103C8T6这款单片机来驱动,这款单片机单单芯片的话只需8元人民币,而且性能还可以,48脚,RAM20KB,FLASH64K,主频72M,算是性价比较高的了。系统连接图如下所示:



摄像头采集图像之后通过串口发送到上位机,上位机软件如下:



20k的RAM带起来还是比较吃力的



640*480图片效果如下: 



320*240效果如下



效果基本可以。主函数如下:


int main(void)

{

u8 res;

u8 *pname; //带路径的文件名

 

Stm32_Clock_Init(9); // 系统时钟设置

uart_init(72, 115200); // 串口初始化为115200

delay_init(72);     // 延时初始化

usmart_dev.init(72); // 初始化USMART

LED_Init();         // 初始化与LED连接的硬件接口

RCC->AHBENR |= RCC_AHBENR_CRCEN;//硬件crc初始化

delay_ms(5500);

delay_ms(5500);

printf("Enter Main \r\n");

while(OV2640_Init()) //初始化OV2640

{

printf("ov2640 error");

delay_ms(200);

}

printf("ov2640 ok");

delay_ms(1500);

OV2640_JPEG_Mode(); //RGB565模式

OV2640_OutSize_Set(pic_width, pic_height);

ov2640_speed_ctrl();

 

while(1)

{

while(!OV2640_VSYNC) ;

while(OV2640_VSYNC) //等待帧信号

{

res = ov2640_jpg_photo(pname);

delay_ms(10000);

}

 

}

}

关键字:STM32F103C8T6  驱动ov2640  串口传输  上位机

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/2019/ic-news031843561.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STM32F103C8T6有128K的Flash
下一篇:STM32 自定义HID USB设备的实现

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STM32F103C8T6最小系统地的构建(3)_时钟源电路-晶振

最小系统板要有处理器这是肯定的,既然我标题都是STM32F103C8T6的最小系统,那处理器就是C8T6了,电路图上,加一块芯片原理图,如此简单的操作就不做过多描述了。系统是需要有时钟,这样,你的系统跑起来会稳定有序。STM32内部自身就有三个时钟源,这个看过32手册时钟树的都会有一定的了解,在32芯片的时钟树中需要有五个时钟源,我们需要布置的便是外部高速时钟和外部低速时钟。我们讲硬件电路布置,32时钟树的的时钟讲解你们可以参考其他人的一些讲解性文章。硬件上需要了解的知识有两个,外部时钟源怎么和MCU相连,外部时钟源给多大?这个都不是什么非常难找的,网上资料还是有很多的,查阅资料:高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟
发表于 2019-07-13
STM32F103C8T6最小系统地的构建(3)_时钟源电路-晶振

STM32F103C8T6低功耗测试(待机模式)

只测试了待机模式,待机模式实现系统的最低功耗。 原理图如下,一开始全部焊接了,其中S2用来进入待机,S1用来唤醒 测试程序为:#include "stm32f10x.h"#include "system_stm32f10x.h"void Sys_Standby(void){      RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE); //使能PWR外设时钟    PWR_WakeUpPinCmd(ENABLE);  //使能唤醒管脚功能 
发表于 2019-07-01
STM32F103C8T6低功耗测试(待机模式)

stm32f103C8T6移植enc28j60+UIP1.0

移植环境(蓝色粗体字为特别注意内容)1,开发板:STM32F103C8T6最小系统开发板。2,开发环境:Keil uv53,参考文献:https://blog.csdn.net/wzs298/article/details/12228481移植ENC28J60这个网络模块可谓是困难重重啊,。。。。。找了很多个例子都没有成功的,只能说很坑很坑,我不知道网上为什么那么多人抄袭,,没有经过自己验证就copy出来。。。。捣鼓了一天终于把这个坑爹的模块搞定了,,,,先来贴一张图片:本例程移植uIP-1.0协议栈,演示开发板和PC间的TCP通信。自定义了一个简单的应用层通信协议。本例程实现的功能有:(1)通过PC机控制板子上的LED
发表于 2019-06-13
stm32f103C8T6移植enc28j60+UIP1.0

STM32F103C8T6使用MDK 4.12中Custom_HID的修改方法

目的,由上位机发送64字节,设备回应3个字节,功能自定。。板子使用的是最小核心板,MCU为STM32F103C8T6。USB的D-和D+分别接到PA11(USBDM)和PA12(USBDP)上,PA12(USBDP)即D+通过跳线使上拉1.5K电阻到VCC(3.3V)。1:打开MDK4.12,打开C:KeilARMExamplesSTSTM32F10xUSBLibDemosCustom_HIDproject目录下的Custom_HID项目文件。2:选择菜单 Project->Options for Target 'STM3210E-EVAL'在Device选项卡里选择 STM32F103C8。在Output
发表于 2019-06-12

STM32F103RCT6移植到STM32F103C8T6注意事项

1,修改IC为STC32F103C8 2,修改晶振为8.0M  3,修改C/C++宏定义,由STM32F10X_HD,USE_STDPERIPH_DRIVER 改为 STM32F10X_MD,USE_STDPERIPH_DRIVER 4,替换启动文件,由startup_stm32f10x_hd.s修改为startup_stm32f10x_md.s到这里已经没有报错了5,重新分配各模块引脚定义这一步做完以后才发现,程序好像跑的慢了10来倍,群里求助,说是倍频没有设置好,找到一个设置倍频的代码后,发现还是不行.再搜索原子论坛有人同样遇到相同的问题,在某位大神的回复中找到了答案
发表于 2019-06-12
STM32F103RCT6移植到STM32F103C8T6注意事项

STM32F103C8T 学习 - 环境配置

直接开发的MCU的型号的,而且使用版本稳定的,因为MDK是我们的开发编写程序的软件,想必你也不想日后麻烦。3、安装ST LINK v2这个驱动是下载调试需要的驱动软件,安装完成后插进ST LINK v2下载器就会自动安装了二、文件说明ST库压缩包解压后,会出现如下文件,但是这些文件并不是所有的都是我们需要的。首先在STM32F10x_StdPeriph_Lib_V3.5.0LibrariesSTM32F10x_StdPeriph_Driver下的inc和src是我们需要的库文件函数库。在STM32F10x_StdPeriph_Lib_V3.5.0LibrariesCMSISCM3CoreSupport下的是M3内核MCU编译需要的文件
发表于 2019-06-03
STM32F103C8T 学习 - 环境配置

小广播

何立民专栏

单片机及嵌入式宝典

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

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