lcd_ov7670

所属分类:单片机开发
开发工具:C/C++
文件大小:1054KB
下载次数:189
上传日期:2011-05-11 11:40:41
上 传 者boy364100
说明:  STM32F103 控制 OV7670 输出图像至 LCD // HREF PC8 // VSYNC PC11 // PCLK PC10 // SIOD PA6 // XCLK1 PA8 // SIOC PA7 // D0 PC0 // D1 PC1 // D2 PC2 // D3 PC3 // D4 PC4 // D5 PC5 // D6 PC6 // D7 PC7
(STM32F103 OV7670 LCD // HREF PC8 // VSYNC PC11 // PCLK PC10 // SIOD PA6 // XCLK1 PA8 // SIOC PA7 // D0 PC0 // D1 PC1 // D2 PC2 // D3 PC3 // D4 PC4 // D5 PC5 // D6 PC6 // D7 PC7 )

文件列表:
lcd_ov7670\GPIO\buffer.c (716543, 2009-10-31)
lcd_ov7670\GPIO\buffer.H (2069, 2009-10-31)
lcd_ov7670\GPIO\cortexm3_macro.s (9548, 2007-05-17)
lcd_ov7670\GPIO\delay.c (240, 2010-06-05)
lcd_ov7670\GPIO\delay.h (90, 2008-12-06)
lcd_ov7670\GPIO\font.h (25286, 2009-10-26)
lcd_ov7670\GPIO\GLCD.c (24523, 2010-06-05)
lcd_ov7670\GPIO\GLCD.h (4864, 2010-07-06)
lcd_ov7670\GPIO\GPIO.opt.bak (1903, 2008-04-29)
lcd_ov7670\GPIO\GPIO.Uv2.bak (3205, 2008-04-29)
lcd_ov7670\GPIO\GPIO.uvopt (78630, 2010-07-07)
lcd_ov7670\GPIO\GPIO.uvproj (18046, 2010-07-07)
lcd_ov7670\GPIO\GPIO_GPIO.dep (9463, 2010-07-07)
lcd_ov7670\GPIO\GPIO_Opt.Bak (2008, 2008-04-29)
lcd_ov7670\GPIO\GPIO_Uv2.Bak (3294, 2008-04-29)
lcd_ov7670\GPIO\GPIO_uvopt.bak (79476, 2010-07-06)
lcd_ov7670\GPIO\GPIO_uvproj.bak (18041, 2010-07-02)
lcd_ov7670\GPIO\ili9320.c (37025, 2009-10-26)
lcd_ov7670\GPIO\ili9320.h (2616, 2009-10-26)
lcd_ov7670\GPIO\ili9320_api.c (7107, 2008-10-10)
lcd_ov7670\GPIO\ili9320_font.h (7962, 2008-10-07)
lcd_ov7670\GPIO\JLinkLog.txt (81511, 2010-07-07)
lcd_ov7670\GPIO\listing\cortexm3_macro.lst (24002, 2010-07-07)
lcd_ov7670\GPIO\listing\GPIO.map (72953, 2010-07-07)
lcd_ov7670\GPIO\listing\stm32f10x_vector.lst (29630, 2010-07-07)
lcd_ov7670\GPIO\main.c (9848, 2010-07-07)
lcd_ov7670\GPIO\obj\buffer.crf (1113, 2010-07-07)
lcd_ov7670\GPIO\obj\buffer.d (26, 2010-07-07)
lcd_ov7670\GPIO\obj\buffer.o (176324, 2010-07-07)
lcd_ov7670\GPIO\obj\cortexm3_macro.o (2348, 2010-07-07)
lcd_ov7670\GPIO\obj\delay.crf (235, 2010-07-07)
lcd_ov7670\GPIO\obj\delay.d (48, 2010-07-07)
lcd_ov7670\GPIO\obj\delay.o (6308, 2010-07-07)
lcd_ov7670\GPIO\obj\ExtDll.iex (19, 2010-07-01)
lcd_ov7670\GPIO\obj\glcd.crf (231306, 2010-07-07)
lcd_ov7670\GPIO\obj\glcd.d (320, 2010-07-07)
lcd_ov7670\GPIO\obj\glcd.o (253452, 2010-07-07)
lcd_ov7670\GPIO\obj\GPIO.axf (316500, 2010-07-07)
lcd_ov7670\GPIO\obj\GPIO.hex (26871, 2010-07-07)
lcd_ov7670\GPIO\obj\GPIO.htm (68078, 2010-07-07)
... ...

本示例程序主要测试GPIO的功能。 程序通过按键对应的引脚的电平是否被拉低来判断按键是否被按下,如果按键被按下,则相应的LED闪烁一次。 S2-> LD3 S3-> LD4 S4-> LD5 S5-> LD6 DB0 ~ DB7 :PE0 ~ PE7 DB10 ~ DB17 :PE8 ~ PE15 RS:PD13 CS:PD12 WR:PD14 RD:PD15 // XCLK1 PA8 // HREF PB0 // VSYNC PB1 // PCLK PB2 // SIOD PA5 // SIOC PA4 // D0 PD0 // D1 PD1 // D2 PD2 // D3 PD3 // D4 PD4 // D5 PD5 // D6 PD6 // D7 PD7 int main(void) { // unsigned int i=0,j=0; static unsigned long TimerCnt = 0x00; static unsigned char temp7660 = 0x00; unsigned int value; unsigned int val; #ifdef DEBUG debug(); #endif /* System Clocks Configuration */ RCC_Configuration(); Demo_Init(); GPIO_Configuration(); GLCD_init (); GPIOD->CRL &= 0xffffffff; //PC6设置为50M通用推挽输出模式 GPIOD->CRL |= 0x00000000; GLCD_Test() ; Lcd_SetBox(0,320,240,320) ; GLCD_displayStringLn(Line1,"OV7670_TEST!!!") ; delay_ms(100); // Test_tu() ; while(1!=OV7670_init()); Lcd_SetBox(0,320,240,320) ; LCD_WR_START(); XCLK_init_ON(); // OV7660 XCLK 开 while(1) { TimerCnt = 0; temp7660 = 0x00; // XCLK_init_ON(); // OV7660 XCLK 开 //// XCLK_init_ON(); // OV7660 XCLK 开 while(GPIOB->IDR & OV7670_VSYNC_BIT); // Vsync = H while((~GPIOB->IDR) & OV7670_VSYNC_BIT); // Vhync = L //XCLK_init_OFF(); //OV7660 XCLK 关 Lcd_SetBox(0,320,240,320) ; LCD_WR_START(); // XCLK_init_OFF(); //OV7660 XCLK 关 // delay_ms(10); // LCD_WR_START() ; while(TimerCnt < 76800) { // XCLK_L;delay_us(2);XCLK_H;delay_us(2); temp7660 =~temp7660; while(~GPIOB->IDR & OV7670_HREF_BIT); //while( HREF = 0 ) while(GPIOB->IDR&OV7670_PCLK_BIT); //while( PCLK = 1 ) { value = GPIOD->IDR; if(temp7660 == 0xff)// 高字节 { val = value << 8; } else // 低字节 { val |= (value & 0x00FF); GPIOE->ODR = val;//Magenta ;//val; LCD_CS_L(); LCD_WR_L(); LCD_WR_H(); temp7660 = 0x00; TimerCnt ++; // LCD_RS_H(); // LCD_RD_H(); } } } LCD_CS_H(); } } value+= 200; for(TimerCnt = 0; TimerCnt < 76800; TimerCnt++) { GPIOE->ODR = value; LCD_WR_L(); LCD_WR_H(); } // delay_ms(5000); TimerCnt = 0; temp7660 = 0x00; while(GPIOB->IDR & OV7670_VSYNC_BIT); // Vsync = H while((~GPIOB->IDR) & OV7670_VSYNC_BIT); // Vhync = L Lcd_SetBox(0,320,240,320) ; LCD_WR_START(); while(TimerCnt < 76800 // 76800 { temp7660 =~temp7660; while(~GPIOB->IDR & OV7670_HREF_BIT); //while( HREF = 0 ) while(GPIOB->IDR&OV7670_PCLK_BIT); //while( PCLK = 1 ) { value = GPIOD->IDR; if(temp7660 == 0xff)// 高字节 { val = value << 8; } else // 低字节 { val |= (value & 0x00FF); GPIOE->ODR = val;//Magenta ;//val; temp7660 = 0x00; TimerCnt ++; // LCD_CS_L(); LCD_RS_H(); LCD_RD_H(); LCD_WR_L(); LCD_WR_H(); } } }

近期下载者

相关文件


收藏者