最近剛開始接觸stm32,站著書上依樣畫葫蘆的寫了個OV7670在TFT上的顯示程式,完全照著書本本程式倒是沒出現什么問題,但是我自己在這個基礎上再加點自己的東西后就出現了卡住的問題。
## 程式代碼:
/**********************************/
里邊是我自己加的程式,但是加進去后就會出現卡住的問題
/**********************************/
#include "stm32f10x.h"
#include "delay.h"
#include "led.h"
#include "tft.h"
#include "led.h"
#include "ov7670.h"
#include "gui.h"
#include "EasyTracer.h"
extern u8 ov_sta; //幀次數,置位標志位
//?更新LCD顯示
void camera_refresh(void)
{
u32 j;
u16 color;
if(ov_sta==2) //判斷快取區是否存好攝像資料
{
OV7670_RRST_0; //開始復位讀指標
OV7670_RCK_0;
OV7670_RCK_1;
OV7670_RCK_0;
OV7670_RRST_1; //復位讀指標結束
OV7670_RCK_1;
TFT_RS_1; //寫資料線拉高,提高寫入速度
for(j=0;j<76800;j++) //解析度位240x320,每種顏色16位,所以需要240*320*2=76800
{
OV7670_RCK_0; //每一次時鐘跳變讀一次資料
color=GPIOD->IDR&0XFF00; //讀取顏色高位元組
OV7670_RCK_1;
OV7670_RCK_0;
color|=((GPIOD->IDR&0XFF00)>>8); //讀取顏色低位元組
OV7670_RCK_1;
GPIOB->BRR=GPIO_Pin_All; //清暫存器資料
GPIOB->BSRR=color; //將采集到的顏色值賦給PB口暫存器
TFT_WR_0; //開始寫入
TFT_WR_1;
}
/**如果在這里讓TFT在顯示攝像頭捕捉到的影像的基礎上,再顯示其它的東西形成影像上的覆寫**/
GUI_fill_box(50,50,100,100,Blue); //(起始坐標x,y,長度,寬度,顏色),顯示一個特定顏色的實心矩形
/******************就會卡在攝像頭捕捉到的第一幀的影像上***************************/
EXTI_ClearITPendingBit(EXTI_Line0); //清除LINE8上的中斷標志位
ov_sta=0; //開始下一次采集
}
}
int main(void)
{
u8 lightmode=0,saturation=2,brightness=2,contrast=2;
u8 effect=0;
delay_init(); //延時函式初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
LED_Init(); //初始化與LED連接的硬體介面
Lcd_Init(); //LCD初始化
TFT_CS(0); //打開LCD片選使能
GUI_Clear(White); //清屏
OV_Gpio_Init();
while(OV_Init()!=0)//初始化OV7670
{
GUI_sprintf_hzstr16x(20,150,"OV7670 Loading!!!",Blue,White);
delay_ms(500);
GUI_sprintf_hzstr16x(20,150," ",Blue,White);
delay_ms(100);
}
GUI_Clear(Red); //初始化完成后紅色清屏
//攝像頭引數設定
OV7670_Light_Mode(lightmode);
OV7670_Color_Saturation(saturation);
OV7670_Brightness(brightness);
OV7670_Contrast(contrast);
OV7670_Special_Effects(effect);
EXTI0_Init(); //初始化中斷線
OV7670_Window_Set(10,174,240,320); //設定視窗
OV7670_CS=0; //使能攝像頭片選
LCD_scan(5); //設定TFT掃描方向:下→上、右→左
Address_set(0,0,319,239,0,0); //由于掃描方向改變,原點也發生改變
TFT_RS_1; //資料線拉高,提高寫入速度
while(1) //不斷重繪攝像頭
{
camera_refresh();
}
}
uj5u.com熱心網友回復:
后面添加的不是刷全屏,再想顯示攝像頭資料需要重新設定地址uj5u.com熱心網友回復:
多謝大佬!!!轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/12395.html
標籤:單片機/工控
