STM32 OV2640攝像頭學習筆記

2021-09-11 19:26:12 字數 2048 閱讀 6879

五、ov_camera 配置

基本概念:

比如我們採用uxga時序,rgb565格式輸出,每2個位元組組成乙個畫素的顏色(低位元組在前,高位元組在後)

這樣每行輸出總共有1600*2個pclk週期,輸出1600*2個位元組

dcmi介面簡介- 初始化流程:

①配置相關引腳的復用功能,使能dcmi時鐘

②設定dcmi工作模式及pclk/hsync/vsync

③設定dma

④啟動dcmi傳輸

//sccb起始訊號

//當時鐘為高的時候,資料線的高到低,為sccb起始訊號

//在啟用狀態下,sda和scl均為低電平

//sccb停止訊號

//當時鐘為高的時候,資料線的低到高,為sccb停止訊號

//空閒狀況下,sda,scl均為高電平

void

sccb_stop

(void

)

ov2640_pwdn=0;

//power on

rt_hw_ms_delay(1

);ov2640_rst=0;

//復位ov2640

rt_hw_ms_delay(1

);ov2640_rst=1;

//結束復位

sccb_init()

;//初始化sccb 的io口

sccb_wr_reg

(ov2640_dsp_ra_dlmt,

0x01);

//操作sensor暫存器

sccb_wr_reg

(ov2640_sensor_com7,

0x80);

//軟復位ov2640

reg=

sccb_rd_reg

(ov2640_sensor_midh)

;//讀取廠家id 高八位

reg<<=8;

reg|

=sccb_rd_reg

(ov2640_sensor_midl)

;//讀取廠家id 低八位

res = reg;

if(reg!=ov2640_mid)

reg=

sccb_rd_reg

(ov2640_sensor_pidh)

;//讀取廠家id 高八位

reg<<=8;

reg|

=sccb_rd_reg

(ov2640_sensor_pidl)

;//讀取廠家id 低八位

if(reg!=ov2640_pid)

log_i

("ov2640 camera id:%x %x "

,reg,res)

;

//這裡採用svga

//初始化 ov2640,採用svga解析度(800*600) fps:30

OV 2640 攝像頭除錯問題

ov2640攝像頭使用 sccb 協議進行傳輸,很多說該協議 與 i2c 協議類似 或 相同,但是通過踩坑後發現還是有些細微的差別,踩坑情況和下面博主相同 下面記錄下內容 sccb讀寫邏輯 ov2640寫位址0x60 轉化為8bit裝置位址 寫暫存器 start 0x60 暫存器id 資料 stop...

STM32驅動OV7725攝像頭顏色識別

實驗目的 使用stm32驅動ov7725攝像頭進行影象實時採集,在tft螢幕上實時顯示並識別影象中的特定顏色,在顏色的周圍畫上框。實驗現象 實現原理 將攝像頭的資料讀出寫入tft屏,讀取tft螢幕上的畫素點的顏色進行識別。由於rgb格式的顏色資料的效果不好,所以將其轉換為hsl格式資料。首先遍歷尋找...

STM32學習筆記之攝像頭實驗(OV2640)

簡介 ov2640是omnivision公司生產的一顆1 4寸的cmos uxga 1632 1232 影象感測器。該感測器體積小 工作電壓低,提供單片uxga攝像頭和影像處理器的所有功能。通過sccb 匯流排控制,可以輸出整幀 子取樣 縮放和取視窗等方式的各種解析度8 10位影像資料。uxga最高...