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();
}
}
}
近期下载者:
相关文件:
收藏者: