stm32f103休眠功能能处理OV7725摄像头吗

&>&STM32F4 摄像头OV7725采集图像并显示在LCD屏上
STM32F4 摄像头OV7725采集图像并显示在LCD屏上
上传大小:3.64MB
使用正点原子探索板 STM32F4 摄像头为秉火OV7725,摄像头采集图像,并显示在LCD屏上,RGB565转成灰度图像,可进一步转换为二值化图像。
综合评分:4
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有6条
还行吧。。。
很好!!!!!
能不能驱动7670
综合评分:
积分/C币:3
综合评分:
积分/C币:3
cooldog123pp
综合评分:
积分/C币:3
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
STM32F4 摄像头OV7725采集图像并显示在LCD屏上
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
无法举报自己的资源
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
wang___________
举报的资源分:
请选择类型
资源无法下载 ( 404页面、下载失败、资源本身问题)
资源无法使用 (文件损坏、内容缺失、题文不符)
侵犯版权资源 (侵犯公司或个人版权)
虚假资源 (恶意欺诈、刷分资源)
含色情、危害国家安全内容
含广告、木马病毒资源
*详细原因:
STM32F4 摄像头OV7725采集图像并显示在LCD屏上STM32 DCMI摄像头 怎么实现拍照功能
来源:互联网
责任编辑:李平字体:
RT:我想知道STM32 DCMI摄像头 怎么实现拍照功能用户回答1:但usb协议,摄像头驱动都要自己写;dma-&gt,其实stm32是个软usb.效率太差。CH376是个U盘和sd卡读取芯片接摄像头不会工作stm(带fsmc)一般用OV5640摄像头模块(500w)ov7670摄像头模块(30w)ov模块-&stm32-&tft摄像头-&gt免驱只是对windows系统而言因为系统自带了驱动所以“免驱“。stm32上是没系统的直接编程的虽然有usb
相关解决方法如下:
STM系列的芯片类似于TI的DSP芯片一样提供库文件
库文件不仅有头文件(对寄存器用... 功能的C文件即可
由于STM32官方进出对库文件进行更新
尤其是前两年,很多头文件都...
1、限副滤波 /* A值可根据实际情况调整
value为有效值,new_value为当前采样值
滤波程序返回有效的实际值 */
#define A 10
char filter()
这个计算过程需要大量的存储空间和运算速度。
如此大的系统开销只能确定这是否是人脸,我不知道如何匹配两个人脸,但根据haar的复杂度我可以认为STM32做不了。如果你...
目前市面上的开发板都没有GPRS模块,STM32F103系列的USB只是SLAVE(从属接口),不能接USB设备,所以不能接USB摄像头。
建议方案:普通STM32F103开发板(最小系统...
5分号多吗?还要写得好!算自己留着用吧!
这样看你的TFT空机器的型号了,不同型号控制方法不同, 一般型号的区域块写代码基本都这样的 /*
函数名: void BlockWrite(u16 Xstart,u16 Xend,u16 Ystart,u16 Yend)
输入 : X...
给你个思路:先定义一个数组,在串口中断里,设置接收中断,当连续发送字符串时,每接收一个字符,就保存在数组里,但是串口中断里要设置变量来引导字符放在数组的位置
STM32的多,若是学S3C2440不会了,还比较容易问人,若是STM32不会了,你问谁,不要相信售后技术支持,我就买了块,同学也有买的,当你买后要问一下如何学的时候,销售的就不怎...
复用I/O口就是一段程序中你重复使用了统一I/O口,但是功能不一样~
例如你使用ADC转换时,可以复用PB0、PB 1作转换通道CH0、CH1,和输出~
实现了基本的SD操作,但没有文件系统。如果需要文件系统,需要一直FATFS。不过很容... 用内部的SD寄存器操作,才能获得正常的都写速度。
如果是STM32F4的问题,可以参加...
答:免驱只是对windows系统而言因为系统自带了驱动所以“免驱“。stm32上是没系统的直接编程的虽然有usb,但usb协议,摄像头驱动都要自己写,其实stm32是个软usb.效率太差。CH376是个U盘和sd卡读取芯片接摄像头不会工作stm(带fsmc)一般用OV5640摄像...
答:F407的吧,这个是有例程的,你找DCMI例程,数据取回来就看你需求了,是显示在LCD上就FSMC或者IO模拟都可以,这个过程可以全DMA的,或者储存在FLASH里。
答:视频上传恐怕很难,直接在LCD显示还差不多;因为可用的通路速率都不高,要么串口,要么USB,要么网口;但是这些都要协议的支持,上位机开发也是一个问题。如果STM32有DCMI的话还可以。所以建议就是用有DCMI接口的STM32芯片,用网口或者USB或者串...
答:stm32f4系列有的,它有Digital camera interface (DCMI)摄像头接口。
答:这样就可以用网络播放器播放了,只是给你一个建议,因为我也现在也没多少时间搞这些视频上传恐怕很难。如果STM32有DCMI的话还可以。我个人建议用网络传输,不知道可行性能否接受,这是我心中的理想方案,要么USB,如果可以的话做成标准的视频流...
答:stm的四种不同模式:run,stop,sleep,standby是可以设置的,如果没有设置不会进入的停止模式。可以参考所选的IC的datasheet!
问:关于stm32的dma不明白将外设dcmi的DCMI_DR_ADDRESS的数据传到内存数组里...答:stm32的外设会主动通知的,在你设定的条件下。
答:stm32的外设会主动通知的,在你设定的条件下。 stm32的外设会主动通知的,在你设定的条件下。
答:STM系列的芯片类似于TI的DSP芯片一样提供库文件 库文件不仅有头文件(对寄存器用英文来替代)还有C语言文件 最常见的比方说你想用到一个定时器 那么你添加TIME.C这个库文件后 里面一定有一个函数叫TIME_Init(xx)用于初始化定时器 比方说如果你...
答:这个肯定能做,频率范围和准确度要求,频率高精度就会变差为您准备的好内容:
最新添加资讯
24小时热门资讯
Copyright ©
haoxyx.com All Rights Reserved. 好心游戏网 版权所有
京ICP备号-1 京公网安备02号ALIENTEK-STM32F103-OV7725
说明:&&正点原子战舰STM32F103驱动野火的OV7725摄像头(Punctuality atomic warships STM32F103 driven wildfires OV7725 camera)
文件列表:
战舰STM32驱动OV7725\CORE\core_cm3.c
战舰STM32驱动OV7725\CORE\core_cm3.h
战舰STM32驱动OV7725\CORE\startup_stm32f10x_cl.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_hd.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_hd_vl.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_ld.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_ld_vl.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_md.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_md_vl.s
战舰STM32驱动OV7725\CORE\startup_stm32f10x_xl.s
战舰STM32驱动OV7725\HARDWARE\CONTACT\contact.c
战舰STM32驱动OV7725\HARDWARE\CONTACT\contact.h
战舰STM32驱动OV7725\HARDWARE\CONTROL\control.c
战舰STM32驱动OV7725\HARDWARE\CONTROL\control.h
战舰STM32驱动OV7725\HARDWARE\DMA\dma.c
战舰STM32驱动OV7725\HARDWARE\DMA\dma.h
战舰STM32驱动OV7725\HARDWARE\EXTI\exti.c
战舰STM32驱动OV7725\HARDWARE\EXTI\exti.h
战舰STM32驱动OV7725\HARDWARE\IMAGE\image.c
战舰STM32驱动OV7725\HARDWARE\IMAGE\image.h
战舰STM32驱动OV7725\HARDWARE\KEY\key.c
战舰STM32驱动OV7725\HARDWARE\KEY\key.h
战舰STM32驱动OV7725\HARDWARE\LCD\font.h
战舰STM32驱动OV7725\HARDWARE\LCD\lcd.c
战舰STM32驱动OV7725\HARDWARE\LCD\lcd.h
战舰STM32驱动OV7725\HARDWARE\LED\led.c
战舰STM32驱动OV7725\HARDWARE\LED\led.h
战舰STM32驱动OV7725\HARDWARE\OV7725\ov7725.c
战舰STM32驱动OV7725\HARDWARE\OV7725\ov7725.h
战舰STM32驱动OV7725\HARDWARE\OV7725\ov7725config.h
战舰STM32驱动OV7725\HARDWARE\OV7725\sccb.c
战舰STM32驱动OV7725\HARDWARE\OV7725\sccb.h
战舰STM32驱动OV7725\HARDWARE\TIMER\timer.c
战舰STM32驱动OV7725\HARDWARE\TIMER\timer.h
战舰STM32驱动OV7725\HARDWARE\TPAD\tpad.c
战舰STM32驱动OV7725\HARDWARE\TPAD\tpad.h
战舰STM32驱动OV7725\OBJ\contact.crf
战舰STM32驱动OV7725\OBJ\contact.d
战舰STM32驱动OV7725\OBJ\contact.o
战舰STM32驱动OV7725\OBJ\contact.__i
战舰STM32驱动OV7725\OBJ\control.crf
战舰STM32驱动OV7725\OBJ\control.d
战舰STM32驱动OV7725\OBJ\control.o
战舰STM32驱动OV7725\OBJ\control.__i
战舰STM32驱动OV7725\OBJ\core_cm3.crf
战舰STM32驱动OV7725\OBJ\core_cm3.d
战舰STM32驱动OV7725\OBJ\core_cm3.o
战舰STM32驱动OV7725\OBJ\core_cm3.__i
战舰STM32驱动OV7725\OBJ\delay.crf
战舰STM32驱动OV7725\OBJ\delay.d
战舰STM32驱动OV7725\OBJ\delay.o
战舰STM32驱动OV7725\OBJ\delay.__i
战舰STM32驱动OV7725\OBJ\dma.crf
战舰STM32驱动OV7725\OBJ\dma.d
战舰STM32驱动OV7725\OBJ\dma.o
战舰STM32驱动OV7725\OBJ\dma.__i
战舰STM32驱动OV7725\OBJ\ExtDll.iex
战舰STM32驱动OV7725\OBJ\exti.crf
战舰STM32驱动OV7725\OBJ\exti.d
战舰STM32驱动OV7725\OBJ\exti.o
战舰STM32驱动OV7725\OBJ\exti.__i
战舰STM32驱动OV7725\OBJ\image.crf
战舰STM32驱动OV7725\OBJ\image.d
战舰STM32驱动OV7725\OBJ\image.o
战舰STM32驱动OV7725\OBJ\key.crf
战舰STM32驱动OV7725\OBJ\key.d
战舰STM32驱动OV7725\OBJ\key.o
战舰STM32驱动OV7725\OBJ\key.__i
战舰STM32驱动OV7725\OBJ\lcd.crf
战舰STM32驱动OV7725\OBJ\lcd.d
战舰STM32驱动OV7725\OBJ\lcd.o
战舰STM32驱动OV7725\OBJ\lcd.__i
战舰STM32驱动OV7725\OBJ\led.crf
战舰STM32驱动OV7725\OBJ\led.d
战舰STM32驱动OV7725\OBJ\led.o
战舰STM32驱动OV7725\OBJ\led.__i
战舰STM32驱动OV7725\OBJ\main.crf
战舰STM32驱动OV7725\OBJ\main.d
战舰STM32驱动OV7725\OBJ\main.o
战舰STM32驱动OV7725\OBJ\misc.crf
战舰STM32驱动OV7725\OBJ\misc.d
战舰STM32驱动OV7725\OBJ\misc.o
战舰STM32驱动OV7725\OBJ\misc.__i
战舰STM32驱动OV7725\OBJ\ov7670.crf
战舰STM32驱动OV7725\OBJ\ov7670.d
战舰STM32驱动OV7725\OBJ\ov7670.o
战舰STM32驱动OV7725\OBJ\ov7725.crf
战舰STM32驱动OV7725\OBJ\ov7725.d
战舰STM32驱动OV7725\OBJ\ov7725.o
战舰STM32驱动OV7725\OBJ\ov7725.__i
战舰STM32驱动OV7725\OBJ\sccb.crf
战舰STM32驱动OV7725\OBJ\sccb.d
战舰STM32驱动OV7725\OBJ\sccb.o
战舰STM32驱动OV7725\OBJ\sccb.__i
战舰STM32驱动OV7725\OBJ\startup_stm32f10x_hd.d
战舰STM32驱动OV7725\OBJ\startup_stm32f10x_hd.lst
战舰STM32驱动OV7725\OBJ\startup_stm32f10x_hd.o
战舰STM32驱动OV7725\OBJ\stm32f10x_adc.crf
战舰STM32驱动OV7725\OBJ\stm32f10x_adc.d
战舰STM32驱动OV7725\OBJ\stm32f10x_adc.o
近期下载者:
相关文件:查看: 4185|回复: 13
基于stm32f103c8的正点原子ov7670摄像头上位机显示问题
主题帖子精华
新手入门, 积分 29, 距离下一级还需 -9 积分
在线时间0 小时
小弟最近在做小车,需要用摄像头输出黑白的图像,也就是让摄像头输出YUV格式,用的mcu是stm32f103c8t6,摄像头就是正点原子的带fifo的ov7670,已经做一周了!但是用串口通信输出到电脑上,就算把摄像头盖子盖上,Y输出的也不都全是0x00或者0xff,真的是快要疯掉了。这周每晚都熬到三点多,白天要上课没时间做,但是还是没做出来,真的要疯掉了。。。我用的代码就是原子哥http://www.openedv.com/posts/list/23685.htm这个链接里的代码,寄存器配置都和他的一样,可是就是不成功。哪位好心大哥能帮我看一下代码吗?帮帮小弟!搞不出来摄像头心情真的非常差,整个人每天都没什么精神,求哪位大哥帮帮小弟看看代码吧!
代码里我写的是ov7225,大哥们自动忽略,其实用的是7670,摄像头就是在原子哥店铺里买的那个。
//*****************************GPIO口使用
//PA0 & VSYNC场中断信号输入,floating输入
//PA1 & WE写使能,推挽输出,50MHZ
//PA5 &WRST写指针复位,推挽输出,50MHZ
//PA2 &RRST读指针复位,推挽输出,50MHZ
//PA3 &OE读使能,推挽输出,50MHZ
//PA4 &RCLK读指针复位,推挽输出,50MHZ
//PB8~15 & D0~7数据输入端,上拉输入
//PC14 &SCL
//PC13 &SDA
//*******************************以下是主函数
#include "stm32f10x.h"
#include "bsp_ov7725.h"
#include "usart.h"
#include "stdint.h"
#include "delay.h"
extern u8 Ov7725_&
uint16_t i,j;
int main(void)
& Ov7725_vsync = 0;
delay_init();
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
Ov7725_GPIO_Config();//初始化GPIO口
uart_init(115200); &//上位机显示,与电脑通信时波特率是115200
while(SCCB_SUCCESS());//初始化7670寄存器,配置为yuv输出
VSYNC_Init();//配置场中断
FIFO_CS_L; & //拉低OE,使读使能
if( Ov7725_vsync == 2 )
FIFO_RRST=0;
FIFO_RCLK_L;
FIFO_RCLK_H;
FIFO_RCLK_L;
FIFO_RRST=1;
FIFO_RCLK_H;
for(i=0;i&240;i++)
for(j=0;j&320;j++)
FIFO_RCLK_L;
Y=((GPIOB-&IDR&0xff00)&&8);//因为用的是GPIOB的8~15口,所以要与0XFF00后右移八位
FIFO_RCLK_H;
FIFO_RCLK_L;//不用读UV
FIFO_RCLK_H;
USART_SendData(USART1,Y);//发送给电脑
delay_us(200);
Ov7725_vsync = 0;
//*******************************以下是各个函数
//*******************************bsp_ov7725.c
#include "bsp_ov7725.h"
#include "sys.h"
#include "delay.h"
#include "usart.h"
const u8 ov7670_init_reg_tbl_YUV[][2]=&
{0x12, 0x10},
{0x3a, 0x14},
{0x3d, 0x80},
//0 & & & & 0 & & & : & & &Y U Y V (3a:14 3d:80)
//0 & & & & 1 & & & : & & &Y V Y U &(3a:14 3d:81)
//1 & & & & 0 & & & : & & &U Y V Y (3a:18 3d:80)
//1 & & & & 1 & & & : & & &V Y U Y (3a:18 3d:81)
{0x67, 0x11},
//手工设置 U
{0x68, 0xFF},
//手工设置 V
{0x40, 0xC0},
{0x32, 0x80}, //HREF
{0x17, 0x16}, &//HSTART & & &
{0x18, 0x04},//HSTOP
{0x19, 0x02},//VSTRT
{0x1a, 0x7a},//0x7a, VSTOP
& {0x03, 0x0a},//0x0a, VREF
{0x0c, 0x0c},
{0x15, 0x00},
{0x3e, 0x00},//10
{0x70, 0x00},
{0x71, 0x01},
{0x72, 0x11},
{0x73, 0x09},//
{0xa2, 0x02},//15
{0x11, 0x00},//?±??·????è??,0,??·???.
{0x7a, 0x20},
{0x7b, 0x1c},
{0x7c, 0x28},
{0x7d, 0x3c},//20
{0x7e, 0x55},
{0x7f, 0x68},
{0x80, 0x76},
{0x81, 0x80},
{0x82, 0x88},
{0x83, 0x8f},
{0x84, 0x96},
{0x85, 0xa3},
{0x86, 0xaf},
{0x87, 0xc4},//30
{0x88, 0xd7},
{0x89, 0xe8},
{0x13, 0xe0},
{0x00, 0x00},//AGC
{0x10, 0x00},
{0x0d, 0x00},&
{0x14, 0x20},//0x38, limit the max gain
{0xa5, 0x05},
{0xab, 0x07},
{0x24, 0x75},//40
{0x25, 0x63},
{0x26, 0xA5},
{0x9f, 0x78},
{0xa0, 0x68},
{0xa1, 0x03},//0x0b,
{0xa6, 0xdf},//0xd8,
{0xa7, 0xdf},//0xd8,
{0xa8, 0xf0},
{0xa9, 0x90},
{0xaa, 0x94},//50
{0x13, 0xe5},
{0x0e, 0x61},
{0x0f, 0x4b},
{0x16, 0x02},
{0x1e, 0x27},//????????????????.0x07,
{0x21, 0x02},
{0x22, 0x91},
{0x29, 0x07},
{0x33, 0x0b},
{0x35, 0x0b},//60
{0x37, 0x1d},
{0x38, 0x71},
{0x39, 0x2a},
{0x3c, 0x78},
{0x4d, 0x40},
{0x4e, 0x20},
{0x69, 0x5d},
{0x6b, 0x40},//PLL*4=48Mhz
{0x74, 0x19},
{0x8d, 0x4f},
{0x8e, 0x00},//70
{0x8f, 0x00},
{0x90, 0x00},
{0x91, 0x00},
{0x92, 0x00},//0x19,//0x66
{0x96, 0x00},
{0x9a, 0x80},
{0xb0, 0x84},
{0xb1, 0x0c},
{0xb2, 0x0e},
{0xb3, 0x82},//80
{0xb8, 0x0a},
{0x43, 0x14},
{0x44, 0xf0},
{0x45, 0x34},
{0x46, 0x58},
{0x47, 0x28},
{0x48, 0x3a},
{0x59, 0x88},
{0x5a, 0x88},
{0x5b, 0x44},//90
{0x5c, 0x67},
{0x5d, 0x49},
{0x5e, 0x0e},
{0x64, 0x04},
{0x65, 0x20},
{0x66, 0x05},
{0x94, 0x04},
{0x95, 0x08},
{0x6c, 0x0a},
{0x6d, 0x55},
{0x4f, 0x80},
{0x50, 0x80},
{0x51, 0x00},
{0x52, 0x22},
{0x53, 0x5e},
{0x54, 0x80},
//{0x54, 0x40},//110
{0x09, 0x03},//????????×??ó
{0x6e, 0x11},//100
{0x6f, 0x9f},//0x9e for advance AWB
& & {0x55, 0x00},//????
& & {0x56, 0x40},//??±???
& & {0x57, 0x80},//0x40, &change according to Jim's request
u8 Ov7725_vsync=0;
/************************************************
配置FIFO的端口
&************************************************/
static void FIFO_GPIO_Config(void)
& & GPIO_InitTypeDef GPIO_InitS
& & RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB | RCC_APB2Periph_GPIOC &, ENABLE);
/*PA1(FIFO_WEN--FIFO写使能*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode &= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; &&
& & GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_1);
/*PA5(FIFO_WRST--FIFO写复位*/
& & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Mode &= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_5);
/*PA2(FIFO_RRST--FIFO读复位) PA3(FIFO_OE--FIFO输出使能)*/
& & GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;
GPIO_InitStructure.GPIO_Mode &= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3);&
/*PA4(FIFO_RCLK-FIFO读时钟*/
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode &= GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& & GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_4);
& & /*PB8-PB15(FIFO_DATA--FIFO)数据输出*/
& & GPIO_InitStructure.GPIO_Pin =GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
& & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
& & GPIO_Init(GPIOB, &GPIO_InitStructure);
void Ov7725_GPIO_Config(void)
FIFO_GPIO_Config();
SCCB_Init();
/************************************************
场中断配置
&************************************************/
static void VSYNC_GPIO_Configuration(void)
& & GPIO_InitTypeDef GPIO_InitS
& & RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
&/*PA0---VSYNC*/
& & GPIO_InitStructure.GPIO_Pin = &GPIO_Pin_0;
& & GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
& & GPIO_Init(GPIOA, &GPIO_InitStructure);
/************************************************
场中断配置
&************************************************/
static void VSYNC_NVIC_Configuration(void)
& & NVIC_InitTypeDef NVIC_InitS
& & NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;
& & NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
& & NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
& & NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
& & NVIC_Init(&NVIC_InitStructure);
/************************************************
场中断配置
&************************************************/
static void VSYNC_EXTI_Configuration(void)
& & EXTI_InitTypeDef EXTI_InitS
& & GPIO_EXTILineConfig(GPIO_PortSourceGPIOA, GPIO_PinSource0);//PA0挂靠到EXTI0线上
& & EXTI_InitStructure.EXTI_Line = EXTI_Line0;
& & EXTI_InitStructure.EXTI_Mode = EXTI_Mode_I
EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_F&
& & EXTI_InitStructure.EXTI_LineCmd = ENABLE;
& & EXTI_Init(&EXTI_InitStructure);
/************************************************
场中断配置
&************************************************/
void VSYNC_Init(void)
& & VSYNC_GPIO_Configuration();
& & VSYNC_EXTI_Configuration();
VSYNC_NVIC_Configuration();
/************************************************
&************************************************/
void SCCB_Init(void)
& GPIO_InitTypeDef &GPIO_InitS
& RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
//????PB?????±??
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13;
& GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
//上拉输入
& GPIO_Init(GPIOC, &GPIO_InitStructure);
//PC13 SDA
& GPIO_SetBits(GPIOC,GPIO_Pin_13);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14;
& GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
& GPIO_Init(GPIOC, &GPIO_InitStructure);
& GPIO_SetBits(GPIOC,GPIO_Pin_14);
SCCB_SDA_OUT();
u8 SCCB_SUCCESS(void)
& if(SCCB_WR_Reg(0x12,0x80))return 1; //
delay_ms(50);&
& temp=SCCB_RD_Reg(0x0b); &&
if(temp!=0x73)return 2; &
& temp=SCCB_RD_Reg(0x0a); &&
if(temp!=0x76)return 2;
for(i=0;i&(sizeof(ov7670_init_reg_tbl_YUV)/sizeof(ov7670_init_reg_tbl_YUV[0])/2);i++)
& ///sizeof(ov7670_init_reg_tbl_YUV[0])/2
SCCB_WR_Reg(ov7670_init_reg_tbl_YUV[0],ov7670_init_reg_tbl_YUV[1]);
delay_ms(2);
& & return 0;
u8 SCCB_WR_Reg(u8 reg,u8 data)
SCCB_Start();&
if(SCCB_WR_Byte(SCCB_ID))res=1;&
delay_us(100);
if(SCCB_WR_Byte(reg))res=1;&
delay_us(100);
if(SCCB_WR_Byte(data))res=1;&
SCCB_Stop();
void SCCB_Start(void)
& & SCCB_SDA=1; & &&
& & SCCB_SCL=1; & &&
& & delay_us(50); &
& & SCCB_SDA=0;
& & delay_us(50); &
& & SCCB_SCL=0; & &&
u8 SCCB_WR_Byte(u8 dat)
for(j=0;j&8;j++) //循环发送八位
if(dat&0x80)SCCB_SDA=1;
else SCCB_SDA=0;
delay_us(50);
SCCB_SCL=1;
delay_us(50);
SCCB_SCL=0;
SCCB_SDA_IN();
delay_us(50);
SCCB_SCL=1;
delay_us(50);
if(SCCB_READ_SDA)res=1; &//
else res=0; & & & & //
SCCB_SCL=0;
SCCB_SDA_OUT();
void SCCB_Stop(void)
& & SCCB_SDA=0;
& & delay_us(50); &
& & SCCB_SCL=1;
& & delay_us(50);&
& & SCCB_SDA=1;
& & delay_us(50);
u8 SCCB_RD_Reg(u8 reg)
SCCB_Start();
SCCB_WR_Byte(SCCB_ID);
delay_us(100); &
SCCB_WR_Byte(reg);
delay_us(100);
SCCB_Stop(); &&
delay_us(100);
SCCB_Start();
SCCB_WR_Byte(SCCB_ID|0X01); //
delay_us(100);
val=SCCB_RD_Byte();
SCCB_No_Ack();
SCCB_Stop();
u8 SCCB_RD_Byte(void)
u8 temp=0,j; & &
SCCB_SDA_IN();&
for(j=8;j&0;j--)&
delay_us(50);
SCCB_SCL=1;
temp=temp&&1;
if(SCCB_READ_SDA)temp++; &&
delay_us(50);
SCCB_SCL=0;
SCCB_SDA_OUT(); &&
void SCCB_No_Ack(void)
delay_us(50);
SCCB_SDA=1;
SCCB_SCL=1;
delay_us(50);
SCCB_SCL=0;
delay_us(50);
SCCB_SDA=0;
delay_us(50);
//***********************stm32f10x_it.c
//******************
#include "stm32f10x_it.h"
#include "bsp_ov7725.h"
#include "usart.h"
#include "delay.h"
extern u8 Ov7725_
void EXTI0_IRQHandler(void)
& & if ( EXTI_GetITStatus(EXTI_Line0) != RESET )
/如果发送到nvic
& & & & if( Ov7725_vsync == 0 )
FIFO_WE=1;
& & & & & & & & & & & &//写使能
FIFO_WRST=0;
& & & & & & & & & & &//写指针复位
FIFO_WRST=1;
Ov7725_vsync = 1;
& & & & else if( Ov7725_vsync == 1 )
& & & & & & FIFO_WE=0; & & & & & & & & & & & & &//写禁止
& & & FIFO_WRST=0;
& & & & & & & & & & &//写复位
& & & FIFO_WRST=1;
& & & & & & Ov7725_vsync = 2;
& & & & } & & & &
& & & & EXTI_ClearITPendingBit(EXTI_Line0);
& &//清除标志位 & & &
//********************宏定义
#ifndef __OV7725_H
#define __OV7725_H&
#include "stm32f10x.h"
#include "sys.h"
#define FIFO_CS_H & & GPIOA-&BSRR =GPIO_Pin_3
#define FIFO_CS_L & & GPIOA-&BRR &=GPIO_Pin_3
&/*??????FIFO????????*/
#define FIFO_WRST & & & & &nbspAout(5) &&
#define FIFO_RRST & & & & &nbspAout(2) &&
#define FIFO_RCLK_H & GPIOA-&BSRR =GPIO_Pin_4
#define FIFO_RCLK_L & GPIOA-&BRR &=GPIO_Pin_4&
#define FIFO_WE & & & & & &nbspAout(1)
#define SCCB_SDA_IN() &{GPIOC-&CRH&=0XFF0FFFFF;GPIOC-&CRH|=0X;}
#define SCCB_SDA_OUT() {GPIOC-&CRH&=0XFF0FFFFF;GPIOC-&CRH|=0X;}
#define SCCB_SCL & &
#define SCCB_SDA & &
#define SCCB_READ_SDA & & PCin(13) &
//????SDA & &
#define SCCB_ID &
//OV7670??ID
void Ov7725_GPIO_Config(void);
void VSYNC_Init(void);
void SCCB_Init(void);
u8 SCCB_SUCCESS(void);
u8 SCCB_WR_Reg(u8,u8);
void SCCB_Start(void);
u8 SCCB_WR_Byte(u8);
void SCCB_Stop(void);
u8 SCCB_RD_Reg(u8);
u8 SCCB_RD_Byte(void);
void SCCB_No_Ack(void);
13:04 上传
点击文件名下载附件
1.97 MB, 下载次数: 1750
1、OV7670是否带fifo
2、不带fifo的摄像头你抓取IO口占用了大部分资源,你的任何其他操作都会降低的图像的帧数,导致花屏图像错误等
3、波特率太低。。。。传一帧图像你算下要多少时间。。波特率指的是每秒传多少位,这个位指的是二进制形态的,一帧图像很大的
4、不带fifo的情况下,往串口写数据操作是需要的时间的,会导致花屏图像错误等
5、在带fifo的情况下,先保证把图像传到LCD显示出正确图像的前提下,在尝试往串口 ...
主题帖子精华
初级会员, 积分 171, 距离下一级还需 29 积分
在线时间16 小时
1、OV7670是否带fifo
2、不带fifo的摄像头你抓取IO口占用了大部分资源,你的任何其他操作都会降低的图像的帧数,导致花屏图像错误等
3、波特率太低。。。。传一帧图像你算下要多少时间。。波特率指的是每秒传多少位,这个位指的是二进制形态的,一帧图像很大的
4、不带fifo的情况下,往串口写数据操作是需要的时间的,会导致花屏图像错误等
5、在带fifo的情况下,先保证把图像传到LCD显示出正确图像的前提下,在尝试往串口写数据
6、实现LCD显示成功的前提下,可以把串口写输入的函数替换圈中的那行操作试试
e33c2dc9d2f7bcf6b45e_801.png (0 Bytes, 下载次数: 1)
22:54 上传
主题帖子精华
新手入门, 积分 29, 距离下一级还需 -9 积分
在线时间0 小时
大哥们帮帮忙啊
主题帖子精华
新手入门, 积分 29, 距离下一级还需 -9 积分
在线时间0 小时
小弟一直等着呢,这都成心病了
主题帖子精华
新手入门, 积分 29, 距离下一级还需 -9 积分
在线时间0 小时
帮帮忙啊各位看官
主题帖子精华
在线时间651 小时
主题帖子精华
新手入门, 积分 29, 距离下一级还需 -9 积分
在线时间0 小时
回复【6楼】q:
---------------------------------
好的,谢谢大哥帮忙!
主题帖子精华
新手入门, 积分 27, 距离下一级还需 -7 积分
在线时间0 小时
你用的上位机是什么,发一个
主题帖子精华
初级会员, 积分 143, 距离下一级还需 57 积分
在线时间10 小时
楼主做出来了吗?我最近也在做相关的,需要把摄像头的数据传到pc上显示,求楼主的上位机软件
从兴趣中学习知识
主题帖子精华
新手入门, 积分 16, 距离下一级还需 4 积分
在线时间1 小时
感谢楼主的无私精神!!!
主题帖子精华
中级会员, 积分 400, 距离下一级还需 100 积分
在线时间10 小时
楼主做出来了吗?我最近也在做相关的,需要把摄像头的数据传到pc上显示,求楼主的上位机软件
分享一个自己当初为了学习做的一个简易的串口摄像头
(出处: OpenEdv-开源电子网)
主题帖子精华
中级会员, 积分 400, 距离下一级还需 100 积分
在线时间10 小时
你用的上位机是什么,发一个
分享一个自己当初为了学习做的一个简易的串口摄像头
(出处: OpenEdv-开源电子网)
主题帖子精华
中级会员, 积分 400, 距离下一级还需 100 积分
在线时间10 小时
你用的上位机是什么,发一个
分享一个自己当初为了学习做的一个简易的串口摄像头
(出处: OpenEdv-开源电子网)
主题帖子精华
中级会员, 积分 216, 距离下一级还需 284 积分
在线时间39 小时
u16 Y;& && && && && && &Y是16位的,
但是Y=((GPIOB-&IDR&0xff00)&&8);& && && && &&&Y只取了8位
串口发送 USART_SendData(USART1,Y);& && && && && && & 这里是发送16位数据
是这个问题吗
Powered by}

我要回帖

更多关于 stm32f103 摄像头 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信