int main(void) { delay_init(); //??????? NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //??NVIC????2:2??????,2?????? uart_init(115200); //??????115200 LED_Init(); //LED????? TFTLCD_Init(); //LCD??? KEY_Init(); //????? ctp_dev.init(); //?????? FSMC_SRAM_Init(); //???SRAM TIM3_Int_Init(999,71); //1KHZ ???1ms TIM6_Int_Init(999,719); //10ms?? my_mem_init(SRAMIN); //???????? my_mem_init(SRAMEX); //???????? RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//??CRC??,??STemWin???? GUI_Init(); WM_SetCreateFlags(WM_CF_MEMDEV); GUI_Init();//???????? demo???????? ????????? startUp_Window(); //?????? while(1); }
int main(void) { u8 key; u8 lightmode=0,saturation=2,contrast=2; u8 effect=0; u8 i=0; u8 msgbuf[15]; //消息缓存区 u8 tm=0; delay_init(); //延时函数初始化 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级 uart_init(115200); //串口初始化为 115200 usmart_dev.init(72); //初始化USMART LED_Init(); //初始化与LED连接的硬件接口 KEY_Init(); //初始化按键 LCD_Init(); //初始化LCD TPAD_Init(6); //触摸按键初始化 POINT_COLOR=RED; //设置字体为红色 LCD_ShowString(30,50,200,16,16,"ELITE STM32F103 ^_^"); LCD_ShowString(30,70,200,16,16,"OV7670 TEST"); LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK"); LCD_ShowString(30,110,200,16,16,"2015/1/18"); LCD_ShowString(30,130,200,16,16,"KEY0:Light Mode"); LCD_ShowString(30,150,200,16,16,"KEY1:Saturation"); LCD_ShowString(30,170,200,16,16,"KEY_UP:Contrast"); LCD_ShowString(30,190,200,16,16,"TPAD:Effects"); LCD_ShowString(30,210,200,16,16,"OV7670 Init..."); while(OV7670_Init())//初始化OV7670 { LCD_ShowString(30,210,200,16,16,"OV7670 Error!!"); delay_ms(200); LCD_Fill(30,210,239,246,WHITE); delay_ms(200); } LCD_ShowString(30,210,200,16,16,"OV7670 Init OK"); delay_ms(1500); OV7670_Light_Mode(lightmode); OV7670_Color_Saturation(saturation); OV7670_Contrast(contrast); OV7670_Special_Effects(effect); TIM6_Int_Init(10000,7199); //10Khz计数频率,1秒钟中断 EXTI8_Init(); //使能定时器捕获 OV7670_Window_Set(12,176,240,320); //设置窗口 OV7670_CS=0; LCD_Clear(BLACK); while(1) { key=KEY_Scan(0);//不支持连按 if(key) { tm=20; switch(key) { case KEY0_PRES: //灯光模式Light Mode lightmode++; if(lightmode>4)lightmode=0; OV7670_Light_Mode(lightmode); sprintf((char*)msgbuf,"%s",LMODE_TBL[lightmode]); break; case KEY1_PRES: //饱和度Saturation saturation++; if(saturation>4)saturation=0; OV7670_Color_Saturation(saturation); sprintf((char*)msgbuf,"Saturation:%d",(signed char)saturation-2); break; case WKUP_PRES: //对比度Contrast contrast++; if(contrast>4)contrast=0; OV7670_Contrast(contrast); sprintf((char*)msgbuf,"Contrast:%d",(signed char)contrast-2); break; } } if(TPAD_Scan(0))//检测到触摸按键 { effect++; if(effect>6)effect=0; OV7670_Special_Effects(effect);//设置特效 sprintf((char*)msgbuf,"%s",EFFECTS_TBL[effect]); tm=20; } camera_refresh();//更新显示 if(tm) { LCD_ShowString((lcddev.width-240)/2+30,(lcddev.height-320)/2+60,200,16,16,msgbuf); tm--; } i++; if(i==15)//DS0闪烁. { i=0; LED0=!LED0; } } }