找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5325|回復: 1
打印 上一主題 下一主題
收起左側

攝像頭OV7670 OV7171中文數(shù)據(jù)手冊下載 STM32彩色采集程序 LCD顯示 CF7670C-V3

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:188031 發(fā)表于 2017-8-4 13:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
OV7670/OV7171 CAMERACHIPTM圖像傳感器,體積小、工作電壓低,提供單片 VGA攝像頭和影像處理器的所有功能。通過 SCCB總線控制,可以輸出整幀、子采樣、取窗口等方式的各種分辨率 8位影響數(shù)據(jù)。該產(chǎn)品VGA圖像最高達到30幀/秒。用戶可以完全控制圖像質(zhì)量、數(shù)據(jù)格式和傳輸方式。所有圖像處理功能過程包括伽瑪曲線、白平衡、飽和度、色度等都可以通過 SCCB接口編程。OmmiVision圖像傳感器應用獨有的傳感器技術,通過減少或消除光學或電子缺陷如固定圖案噪聲、托尾、浮散等,提高圖像質(zhì)量,得到清晰的穩(wěn)定的彩色圖像。

OV7670引腳圖:

功能
● 高靈敏度適合低照度應用
● 低電壓適合嵌入式應用
● 標準的SCCB接口,兼容I2
C接口
● RawRGB,RGB(GRB4:2:2,RGB565/555/444),YUV
(4:2:2)和YCbCr(4:2:2)輸出格式
● 支持VGA,CIF,和從CIF到40x30的各種尺寸
● VarioPixel 子采樣方式
● 自動影響控制功能包括:自動曝光控制、自
動增益控制、自動白平衡,自動消除燈光條
紋、自動黑電平校準.圖像質(zhì)量控制包括色飽
和度、色相、伽瑪、銳度和ANTI_BLOOM
● ISP具有消除噪聲和壞點補償功能
● 支持閃光燈:LED燈和氙燈
● 支持圖像縮放
● 鏡頭失光補償
● 50/60Hz自動檢測
● 飽和度自動調(diào)節(jié)(UV調(diào)整)
● 邊緣增強自動調(diào)節(jié)
● 降噪自動調(diào)節(jié)

OV7670中文數(shù)據(jù)手冊:


OV7670管腳功能介紹:



STM32源程序:

  1. #include "main.h"
  2. static volatile ErrorStatus HSEStartUpStatus = SUCCESS;
  3. static vu32 TimingDelay = 0;
  4. static vu32 SELStatus = 0;
  5. extern unsigned int  a, Vsync,c_data;
  6. unsigned int  kkk=0,s=0;
  7. unsigned int M=0,N=0;
  8. /*******************************************************************************
  9. * Function Name  : main
  10. * Description    : Main program.
  11. * Input          : None
  12. * Output         : None
  13. * Return         : None
  14. *******************************************************************************/

  15. #define SI_BIT     GPIO_Pin_0  //
  16. #define SI_H()     GPIOA->BSRR =SI_BIT
  17. #define SI_L()     GPIOA->BRR  =SI_BIT

  18. #define SCK_BIT     GPIO_Pin_1  //
  19. #define SCK_H()     GPIOA->BSRR =SCK_BIT
  20. #define SCK_L()     GPIOA->BRR  =SCK_BIT

  21. void  G_GPIO_Config(void)
  22. {
  23.   
  24.   GPIO_InitTypeDef GPIO_InitStructure;
  25.   /* Enable GPIOA clock */
  26.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  27.   GPIO_InitStructure.GPIO_Pin =SI_BIT |SCK_BIT ;                              
  28.   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  29.   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  30.   GPIO_Init(GPIOA, &GPIO_InitStructure);
  31.   SCK_L();
  32.   SI_L();
  33. }int main(void)
  34. {
  35.   unsigned char p0[]={1+'0',2+'0',3+'0',4+'0',0x00};  


  36. #ifdef DEBUG
  37.   debug();
  38. #endif

  39. unsigned int  kv=0;
  40.   /* Intialize the STM32 SYSTEM_Init */
  41.   SYSTEM_Init();
  42.   //G_GPIO_Config();
  43.    Delay(1); /* delay 1 ms */
  44.     LCD_write_english_string(5,66+16,p0,0Xf800,0X0000);
  45.   LCD_write_english_string(5,66+16,"CMOS Sensor Init.....",0Xf800,0X0000);
  46.   LCD_write_english_string(5,66,"GUANFU_WANG 2011-0415",0X001f,0X0000);
  47. /**/
  48.   /* while(1)
  49.    {
  50.    

  51.      SI_H();
  52.      Delay(3);
  53.    
  54.      SCK_H();  
  55.      Delay(3);
  56.      SI_L();//Delay(1);
  57.      Delay(3);
  58.      SCK_L();
  59.      Delay(3);
  60.      
  61.      for(kv=0;kv<128;kv++)
  62.      {
  63.      
  64.        SCK_H();
  65.        Delay(10);
  66.        SCK_L();
  67.        Delay(10);
  68.      }
  69.    //  Delay(1);
  70.    }
  71.    
  72.    
  73.    */
  74.    
  75.    /////////////////////////////////////
  76.    
  77.    
  78.    
  79.   FIFO_Set_GPIO_Config();
  80.   FIFO_GPIO_INPUT();
  81.   FIFO_CS_L();
  82.   FIFO_WE_H();
  83.   while(1!=Sensor_init()){}//初始化CMOS Sensor
  84.   LCD_write_english_string(5,66+16,"CMOS Sensor Init...ok",0Xf800,0X0000);
  85.   Vsync=0;
  86. ////////////////////////////////////////
  87.   FIFO_RRST_L();
  88.   FIFO_RD_L();
  89.   FIFO_RD_H();
  90.   FIFO_RD_L();
  91.   FIFO_RRST_H();
  92.   FIFO_RD_H();
  93.   Delay(50);

  94.   ////////////////////////////////////////
  95.   while(1)
  96.   {

  97.     if(Vsync==2)
  98.     {
  99.         LCD_WriteReg(0x0020,239);//GRAM水平起始位置
  100.         LCD_WriteReg(0x0021,319);      
  101.         LCD_WriteReg(0x0050,0x00);//水平 GRAM起始位置
  102.         LCD_WriteReg(0x0051,239);//水平GRAM終止位置
  103.         LCD_WriteReg(0x0052,0x00);//垂直GRAM起始位置
  104.         LCD_WriteReg(0x0053,319);//垂直GRAM終止位置
  105.         LCD_WriteReg(0x0003,0x1008);
  106.         LCD_WriteRAM_Prepare(); /* Prepare to write GRAM */  
  107.         FIFO_RRST_L();
  108.         FIFO_RD_L();
  109.         FIFO_RD_H();
  110.         FIFO_RD_L();
  111.         FIFO_RRST_H();
  112.         FIFO_RD_H();
  113.          
  114.         for(a=0;a<9600;a++)
  115.         {

  116.              FIFO_RD_L();
  117.              asm("NOP");asm("NOP");
  118.              c_data=GPIOB->IDR&0xff00;//讀高位
  119.              FIFO_RD_H();
  120.              asm("NOP");asm("NOP");
  121.              FIFO_RD_L();
  122.              asm("NOP");asm("NOP");
  123.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  124.              FIFO_RD_H();  
  125.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  126.              LCD_RAM=c_data;
  127.             
  128.              FIFO_RD_L();
  129.              asm("NOP");asm("NOP");
  130.              c_data=GPIOB->IDR&0xff00;//讀高位
  131.              FIFO_RD_H();
  132.              asm("NOP");asm("NOP");
  133.              FIFO_RD_L();
  134.              asm("NOP");asm("NOP");
  135.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  136.              FIFO_RD_H();  
  137.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  138.              LCD_RAM=c_data;
  139.             
  140.              FIFO_RD_L();
  141.              asm("NOP");asm("NOP");
  142.              c_data=GPIOB->IDR&0xff00;//讀高位
  143.              FIFO_RD_H();
  144.              asm("NOP");asm("NOP");
  145.              FIFO_RD_L();
  146.              asm("NOP");asm("NOP");
  147.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  148.              FIFO_RD_H();  
  149.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  150.              LCD_RAM=c_data;
  151.             
  152.              FIFO_RD_L();
  153.              asm("NOP");asm("NOP");
  154.              c_data=GPIOB->IDR&0xff00;//讀高位
  155.              FIFO_RD_H();
  156.              asm("NOP");asm("NOP");
  157.              FIFO_RD_L();
  158.              asm("NOP");asm("NOP");
  159.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  160.              FIFO_RD_H();  
  161.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  162.              LCD_RAM=c_data;
  163.             
  164.              FIFO_RD_L();
  165.              asm("NOP");asm("NOP");
  166.              c_data=GPIOB->IDR&0xff00;//讀高位
  167.              FIFO_RD_H();
  168.              asm("NOP");asm("NOP");
  169.              FIFO_RD_L();
  170.              asm("NOP");asm("NOP");
  171.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  172.              FIFO_RD_H();  
  173.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  174.              LCD_RAM=c_data;
  175.             
  176.              FIFO_RD_L();
  177.              asm("NOP");asm("NOP");
  178.              c_data=GPIOB->IDR&0xff00;//讀高位
  179.              FIFO_RD_H();
  180.              asm("NOP");asm("NOP");
  181.              FIFO_RD_L();
  182.              asm("NOP");asm("NOP");
  183.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  184.              FIFO_RD_H();  
  185.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  186.              LCD_RAM=c_data;
  187.             
  188.              FIFO_RD_L();
  189.              asm("NOP");asm("NOP");
  190.              c_data=GPIOB->IDR&0xff00;//讀高位
  191.              FIFO_RD_H();
  192.              asm("NOP");asm("NOP");
  193.              FIFO_RD_L();
  194.              asm("NOP");asm("NOP");
  195.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  196.              FIFO_RD_H();  
  197.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  198.              LCD_RAM=c_data;
  199.             
  200.              FIFO_RD_L(); ;
  201.              asm("NOP");asm("NOP");
  202.              c_data=GPIOB->IDR&0xff00;//讀高位
  203.              FIFO_RD_H();
  204.              asm("NOP");asm("NOP");
  205.              FIFO_RD_L();
  206.              asm("NOP");asm("NOP");
  207.              c_data|=(GPIOB->IDR>>8)&0x00ff;//讀低位
  208.              FIFO_RD_H();  
  209.             // LCD_WriteRAM(c_data);//寫RGB數(shù)據(jù)到TFT GRAM
  210.              LCD_RAM=c_data;
  211.          
  212.          }

  213.          Vsync=0;
  214.        }
  215.      }}

  216. …………限于本文篇幅 余下代碼請從51黑下載附件…………

復制代碼
全部資料下載地址:
CF7670C-V3 STM32F103驅(qū)動-彩色采集 LCD顯示 資料.rar (2.99 MB, 下載次數(shù): 47)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:290191 發(fā)表于 2018-3-10 20:50 | 只看該作者
感謝!祝好運!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表