stm32和ov7670图像采集串口上位机显示Word格式.docx

上传人:b****7 文档编号:22614172 上传时间:2023-02-04 格式:DOCX 页数:15 大小:990.36KB
下载 相关 举报
stm32和ov7670图像采集串口上位机显示Word格式.docx_第1页
第1页 / 共15页
stm32和ov7670图像采集串口上位机显示Word格式.docx_第2页
第2页 / 共15页
stm32和ov7670图像采集串口上位机显示Word格式.docx_第3页
第3页 / 共15页
stm32和ov7670图像采集串口上位机显示Word格式.docx_第4页
第4页 / 共15页
stm32和ov7670图像采集串口上位机显示Word格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

stm32和ov7670图像采集串口上位机显示Word格式.docx

《stm32和ov7670图像采集串口上位机显示Word格式.docx》由会员分享,可在线阅读,更多相关《stm32和ov7670图像采集串口上位机显示Word格式.docx(15页珍藏版)》请在冰豆网上搜索。

stm32和ov7670图像采集串口上位机显示Word格式.docx

(引用于网络论坛,感谢他的分享)

{0x12,0x10},//QVGAYUV

{0x3a,0x14},//使用固定UV输出

{0x3d,0x80},//使用固定UV输出

{0x67,0x11},//固定U值,0x11,方便测试

{0x68,0xFF},//固定V值,0xFF,方便测试

{0x40,0xC0},//初始配置,YUV模式,这个寄存器必须设置,否则不好使

为方便调试,都是用固定的U值和V值,

向67中写入11,向68中写入FF,出来的是XX11XXFF,说明配置成功。

要注意的就是{0x40,0xC0},这个必须设置成初始化值,默认配置便是YUV,不能再用RGB565的配置。

顺便说一句,YUV模式为YUV4:

2:

2,不是说8位里面4位Y,2位U,2位V的意思,Y/U/V都是8位数据,只是U和V是隔着Y轮流输出的,高字节的是Y,低字节为U或V,做飞思卡尔智能车一般用的OV7620就是这样,一般只用Y的数据,用来判断黑白。

八:

我的程序说明,各引脚(懒得打字,请看图片吧),串口用的是STM32的UART3,还有需要注意的是我是用一个外部按键作为一帧图片的发送,每按一次发送帧的图片信号,用的是PA3。

有不完善之处欢迎指正,请到原文出处下载工程和交流:

寄存器配置

voidset_Cmos7670reg(void)

{

WrCmos7670(0x67,0xaa);

WrCmos7670(0x68,0x55);

WrCmos7670(0x3a,0x14);

WrCmos7670(0x40,0xC0);

WrCmos7670(0x12,0x10);

WrCmos7670(0x32,0x80);

WrCmos7670(0x17,0x16);

WrCmos7670(0x18,0x04);

WrCmos7670(0x19,0x02);

WrCmos7670(0x1a,0x7b);

WrCmos7670(0x03,0x06);

WrCmos7670(0x0c,0x00);

WrCmos7670(0x3e,0x00);

WrCmos7670(0x70,0x3a);

WrCmos7670(0x71,0x35);

WrCmos7670(0x72,0x11);

WrCmos7670(0x73,0x00);

WrCmos7670(0xa2,0x02);

WrCmos7670(0x11,0x81);

WrCmos7670(0x7a,0x20);

WrCmos7670(0x7b,0x1c);

WrCmos7670(0x7c,0x28);

WrCmos7670(0x7d,0x3c);

WrCmos7670(0x7e,0x55);

WrCmos7670(0x7f,0x68);

WrCmos7670(0x80,0x76);

WrCmos7670(0x81,0x80);

WrCmos7670(0x82,0x88);

WrCmos7670(0x83,0x8f);

WrCmos7670(0x84,0x96);

WrCmos7670(0x85,0xa3);

WrCmos7670(0x86,0xaf);

WrCmos7670(0x87,0xc4);

WrCmos7670(0x88,0xd7);

WrCmos7670(0x89,0xe8);

WrCmos7670(0x13,0xe0);

WrCmos7670(0x00,0x00);

WrCmos7670(0x10,0x00);

WrCmos7670(0x0d,0x00);

WrCmos7670(0x14,0x28);

WrCmos7670(0xa5,0x05);

WrCmos7670(0xab,0x07);

WrCmos7670(0x24,0x75);

WrCmos7670(0x25,0x63);

WrCmos7670(0x26,0xA5);

WrCmos7670(0x9f,0x78);

WrCmos7670(0xa0,0x68);

WrCmos7670(0xa1,0x03);

WrCmos7670(0xa6,0xdf);

WrCmos7670(0xa7,0xdf);

WrCmos7670(0xa8,0xf0);

WrCmos7670(0xa9,0x90);

WrCmos7670(0xaa,0x94);

WrCmos7670(0x13,0xe5);

WrCmos7670(0x0e,0x61);

WrCmos7670(0x0f,0x4b);

WrCmos7670(0x16,0x02);

WrCmos7670(0x1e,0x37);

WrCmos7670(0x21,0x02);

WrCmos7670(0x22,0x91);

WrCmos7670(0x29,0x07);

WrCmos7670(0x33,0x0b);

WrCmos7670(0x35,0x0b);

WrCmos7670(0x37,0x1d);

WrCmos7670(0x38,0x71);

WrCmos7670(0x39,0x2a);

WrCmos7670(0x3c,0x78);

WrCmos7670(0x4d,0x40);

WrCmos7670(0x4e,0x20);

WrCmos7670(0x69,0x00);

WrCmos7670(0x6b,0x60);

WrCmos7670(0x74,0x19);

WrCmos7670(0x8d,0x4f);

WrCmos7670(0x8e,0x00);

WrCmos7670(0x8f,0x00);

WrCmos7670(0x90,0x00);

WrCmos7670(0x91,0x00);

WrCmos7670(0x92,0x00);

WrCmos7670(0x96,0x00);

WrCmos7670(0x9a,0x80);

WrCmos7670(0xb0,0x84);

WrCmos7670(0xb1,0x0c);

WrCmos7670(0xb2,0x0e);

WrCmos7670(0xb3,0x82);

WrCmos7670(0xb8,0x0a);

WrCmos7670(0x43,0x14);

WrCmos7670(0x44,0xf0);

WrCmos7670(0x45,0x34);

WrCmos7670(0x46,0x58);

WrCmos7670(0x47,0x28);

WrCmos7670(0x48,0x3a);

WrCmos7670(0x59,0x88);

WrCmos7670(0x5a,0x88);

WrCmos7670(0x5b,0x44);

WrCmos7670(0x5c,0x67);

WrCmos7670(0x5d,0x49);

WrCmos7670(0x5e,0x0e);

WrCmos7670(0x64,0x04);

WrCmos7670(0x65,0x20);

WrCmos7670(0x66,0x05);

WrCmos7670(0x94,0x04);

WrCmos7670(0x95,0x08);

WrCmos7670(0x6c,0x0a);

WrCmos7670(0x6d,0x55);

WrCmos7670(0x6e,0x11);

WrCmos7670(0x6f,0x9f);

WrCmos7670(0x6a,0x40);

WrCmos7670(0x01,0x40);

WrCmos7670(0x02,0x40);

WrCmos7670(0x13,0xe7);

WrCmos7670(0x15,0x00);

WrCmos7670(0x4f,0x80);

WrCmos7670(0x50,0x80);

WrCmos7670(0x51,0x00);

WrCmos7670(0x52,0x22);

WrCmos7670(0x53,0x5e);

WrCmos7670(0x54,0x80);

WrCmos7670(0x58,0x9e);

WrCmos7670(0x41,0x08);

WrCmos7670(0x3f,0x00);

WrCmos7670(0x75,0x05);

WrCmos7670(0x76,0xe1);

WrCmos7670(0x4c,0x00);

WrCmos7670(0x77,0x01);

WrCmos7670(0x3d,0x80);

WrCmos7670(0x4b,0x09);

WrCmos7670(0xc9,0x60);

WrCmos7670(0x41,0x38);

WrCmos7670(0x56,0x40);

WrCmos7670(0x34,0x11);

WrCmos7670(0x3b,0x02);

WrCmos7670(0xa4,0x89);

WrCmos7670(0x97,0x30);

WrCmos7670(0x98,0x20);

WrCmos7670(0x99,0x30);

WrCmos7670(0x9a,0x84);

WrCmos7670(0x9b,0x29);

WrCmos7670(0x9c,0x03);

WrCmos7670(0x9d,0x4c);

WrCmos7670(0x9e,0x3f);

WrCmos7670(0x78,0x04);

WrCmos7670(0x79,0x01);

WrCmos7670(0xc8,0xf0);

WrCmos7670(0x79,0x0f);

WrCmos7670(0xc8,0x00);

WrCmos7670(0x79,0x10);

WrCmos7670(0xc8,0x7e);

WrCmos7670(0x79,0x0a);

WrCmos7670(0xc8,0x80);

WrCmos7670(0x79,0x0b);

WrCmos7670(0xc8,0x01);

WrCmos7670(0x79,0x0c);

WrCmos7670(0xc8,0x0f);

WrCmos7670(0x79,0x0d);

WrCmos7670(0xc8,0x20);

WrCmos7670(0x79,0x09);

WrCmos7670(0x79,0x02);

WrCmos7670(0xc8,0xc0);

WrCmos7670(0x79,0x03);

WrCmos7670(0xc8,0x40);

WrCmos7670(0x79,0x05);

WrCmos7670(0xc8,0x30);

WrCmos7670(0x79,0x26);

WrCmos7670(0x09,0x00);

}

图片采集发送

voidEXTI1_IRQHandler(void)

{

u16i,j,k=0;

u8t1,t2;

EXTI_InitTypeDefEXTI_InitStructure;

NVIC_InitTypeDefNVIC_InitStructure;

EXTI_ClearITPendingBit(EXTI_Line1);

Vsync_Flag++;

if(Vsync_Flag==1)//FIFOD

{

GPIO_SetBits(GPIOE,GPIO_Pin_5);

//FIFO_WRST=1;

__asm{nop;

GPIO_ResetBits(GPIOE,GPIO_Pin_5);

//FIFO_WRST=0;

delay_us

(2);

GPIO_SetBits(GPIOE,GPIO_Pin_3);

}

if(Vsync_Flag==2)

{

GPIO_ResetBits(GPIOE,GPIO_Pin_3);

//FIFO_WR=0;

//½

û

Ö

¹

Ê

ý

¾

Ý

Ð

´

È

ë

FIFO

EXTI->

IMR&

=~(1<

<

4);

//¹

Ø

±

Õ

Í

â

²

¿

Ï

EMR&

EXTI_InitStructure.EXTI_Line=EXTI_Line1;

EXTI_InitStructure.EXTI_Mode=EXTI_Mode_Interrupt;

EXTI_InitStructure.EXTI_Trigger=EXTI_Trigger_Falling;

EXTI_InitStructure.EXTI_LineCmd=DISABLE;

EXTI_Init(&

EXTI_InitStructure);

//

NVIC_InitStructure.NVIC_IRQChannel=TIM2_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;

NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=DISABLE;

NVIC_Init(&

NVIC_InitStructure);

//

GPIO_SetBits(GPIOE,GPIO_Pin_4);

//FIFO_RCK=1;

GPIO_ResetBits(GPIOE,GPIO_Pin_6);

//FIFO_RRST=0;

//¶

Á

¸

Î

»

GPIO_ResetBits(GPIOE,GPIO_Pin_4);

//FIFO_RCK=0;

}__asm{nop;

GPIO_SetBits(GPIOE,GPIO_Pin_6);

//FIFO_RRST=1;

delay_us

(2);

GPIO_ResetBits(GPIOE,GPIO_Pin_2);

//FIFO_OE=0;

//

USART3_Putc(0xff);

//请注意:

这里是发送协议信号,不是图像信号

for(i=0;

i<

9600;

i++)

{

for(j=0;

j<

8;

j++)

{

GPIO_ResetBits(GPIOE,GPIO_Pin_4);

//FIFO_RCK=0;

__asm{nop;

GPIO_SetBits(GPIOE,GPIO_Pin_4);

//FIFO_RCK=1;

t1=(0x00ff&

GPIOC->

IDR);

t2=(0x00ff&

USART3_Putc(t1);

}

k=0;

}

GPIO_SetBits(GPIOE,GPIO_Pin_2);

//FIFO_OE=1;

Vsync_Flag=0;

NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;

IMR|=(1<

EMR|=(1<

}

最后上图才有真相,电路虽然丑点但是可以用的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1