久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于TINYM0 LPC1114的ov7670圖像采集源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:171525 發表于 2018-8-16 16:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      經過一個月的醞釀,兩周的程序調試,實現了應用TINYM0開發板(LPC1114芯片),經過OV7670帶FIFO圖像采集模塊采集圖像并顯示在ili9325驅動的LCD液晶屏上。實驗程序移植正點原子STM32 圖像采集程序。
     在調試過程中發現,LCD液晶屏與OV7670共用數據線,導致花屏現象出現,目前還沒有解決,所以沒有采用共用端口方式。(端口具體配置見LCD和OV7670初始化部分)。

單片機源程序如下:
  1. /******************************************************************/
  2. /* 名稱:OV7670圖像采集及顯示程序             */

  3. /* 作者:李穎              */
  4. /*   ccutchi                */
  5. /*                歡迎來學習                */
  6. /******************************************************************/

  7. #include "nxplpc11xx.h"
  8. #include "ili9325.h"
  9. #include "w25x16.h"
  10. #include "gui.h"
  11. #include "xpt2046.h"

  12. #include  "delay.h"
  13. #include "ov7670.h"
  14. #include  "gui.h"
  15. extern uint8_t ov_sta;        //幀次數 置位標志位
  16. void EXTI2_Init(void);
  17. //更新LCD顯示
  18. void camera_refresh(void)
  19. {
  20.         uint32_t j;
  21.         uint16_t color,temp_color;
  22.        
  23.         if(ov_sta==2)                                //判斷緩存區是否存好攝像數據
  24.         {
  25.                 OV7670_RRST_0;                                //開始復位讀指針
  26.                 OV7670_RCK_0;
  27.                 OV7670_RCK_1;
  28.                 OV7670_RCK_0;               
  29.                 OV7670_RRST_1;                                //復位讀指針結束
  30.                 OV7670_RCK_1;  
  31.                
  32.                 OV7670_CS_L;   //fif 開
  33.                          
  34.                 for(j=0;j<76800;j++)                           //分辨率為240x320   每個顏色點要兩個字節 所以 240x320x2=76800  次
  35.                 {
  36.                        
  37.            // GPIO2->DIR &=0x00F;                   // 設置P2口高8位引腳為輸入,用作OV76708位并行數據輸入
  38.                // GPIO2->DATA = 0XFF0;           // P2口高8位引腳置高
  39.                        
  40.                         OV7670_RCK_0;                                 //每一次時鐘跳變 讀一次數據
  41.                         color=GPIO0->DATA&0X1FE;  //color=GPIOC->IDR&0XFF;        //P0.0~P0.8讀數據   讀取顏色高字節數據
  42.                         OV7670_RCK_1;
  43.                         color<<=7;                                   //左移8位  將高字節移到高8位  為接收低8位字節做準備
  44.                         temp_color=color;  
  45.                         OV7670_RCK_0;
  46.                         color=GPIO0->DATA&0X1FE;  //color=GPIOC->IDR&0XFF;        //讀數據   讀取顏色低字節數據
  47.                         OV7670_RCK_1;
  48.             color>>=1;  
  49.                         color|=temp_color;
  50.           
  51.                     LCD_WR_DATA(color);
  52.            
  53.                 }
  54.      GPIO1->IC = 0x3FF;  // 清除GPIO1上的中斷
  55.      ov_sta=0;        //開始下一次采集
  56.          
  57.                                                
  58.         }
  59.    
  60. }


  61. /*

  62. unsigned int Image_Buffer;
  63. unsigned char  Image[104][14];//圖像數組
  64. unsigned int OrgRow=0,OrgColumn=0;//行列初值設置
  65. unsigned int sampleRow=0,samleColumn=0;//行列初值設置
  66. unsigned int sampleRow_Max=239,samleColumn_Max=239;//行列初值設置最大值

  67. void ImagePlay(void);//圖像顯示函數
  68. void ImageProcess(void);//圖像處理函數
  69. void AutoControl(void);//控制函數

  70. void OV5116_INIT(void);
  71. */
  72. int main(void)
  73. {       
  74.     //uint8_t lightmode=0,saturation=2,brightness=2,contrast=2;
  75.    //uint8_t effect=0;

  76.         SysCLK_config(); // 時鐘配置
  77.         SCCB_Init();               
  78.     LCD_Init();                 // 液晶顯示器初始化       
  79.         SCCB_Start();
  80.        
  81.         while(OV7670_Init())//初始化OV7670
  82.         {
  83.          Draw_TextBox(20, 20, 100, 100);       
  84.         }
  85.   
  86.          //攝像頭 參數設置  屏蔽后為默認效果                   
  87.     OV7670_Light_Mode(0);//lightmode
  88.         OV7670_Color_Saturation(2);//saturation
  89.         OV7670_Brightness(2);//brightness
  90.         OV7670_Contrast(2);//contrast
  91.         OV7670_Special_Effects(0);        //effect

  92.         OV7670_Window_Set(10,174,240,320);        //設置窗口
  93.         //OV7670_CS_L;                                           //使能攝像頭片選        
  94.     EXTI2_Init();                                           //初始化中斷線
  95.         LCD_Clear(BLUE);         // 全屏顯示白色
  96.        
  97.         while(1)
  98.         {       
  99.        
  100.         camera_refresh();               
  101.        
  102.        
  103.         }
  104. }


  105. void EXTI2_Init(void)
  106. {   
  107.         SYSCON->SYSAHBCLKCTRL |= (1<<16); // 使能IOCON時鐘(bit16)
  108.         IOCON->PIO1_0 = 0XD1; //把PIN33設置為P1.0腳
  109.         SYSCON->SYSAHBCLKCTRL &= ~(1<<16); // 禁能IOCON時鐘(bit16)

  110.         //把P1.0和P1.1設置為輸入
  111.         GPIO1->DIR &= ~(1<<0);
  112.         GPIO1->DATA |= (1<<0);
  113.         GPIO1->IS &= ~(1<<0); //選擇P1.0為邊沿觸發
  114.         GPIO1->IEV |=(1<<0);//選擇P1.0為 上升沿觸發
  115.         GPIO1->IE |= (1<<0);  //設置P1.0中斷不被屏蔽
  116.         NVIC_EnableIRQ(EINT1_IRQn);        // 使能GPIO1中斷
  117.        
  118. }

  119. //GPIO1中斷服務函數
  120. void PIOINT1_IRQHandler(void)
  121. {       
  122. if((GPIO1->MIS&0x001)==0x001) // 檢測是不是P1.0引腳產生的中斷
  123.         {
  124.                 if(ov_sta<2)
  125.                 {
  126.                         if(ov_sta==0)
  127.                         {
  128.                                 OV7670_WRST_L;//=0;                 //復位寫指針
  129.                                 OV7670_WRST_H;//=1;       
  130.                                 OV7670_WREN_H;//=1;                //允許寫入FIFO       
  131.                         }
  132.                         else
  133.                         {
  134.                                
  135.                         //        OV7670_WRST_L;//=0;                 //復位寫指針                                   
  136.                         //        OV7670_WRST_H;//=1;       
  137.                                 OV7670_WREN_L;//=0;                //禁止寫入FIFO
  138.                                 }         
  139.                 ov_sta++;
  140.           
  141.                         }       
  142.          GPIO1->IC = 0x3FF;  // 清除GPIO1上的中斷
  143.                 }       
  144.        
  145. }

復制代碼

所有資料51hei提供下載:
ov7670圖像顯示正確.rar (393.87 KB, 下載次數: 12)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:171525 發表于 2019-8-6 15:20 | 只看該作者
把TFT 數據線和 OV7670數據線分開,不共用數據線就OK了
回復

使用道具 舉報

板凳
ID:237942 發表于 2019-8-9 09:18 | 只看該作者
如果數據線復用, 你中間數據傳輸時,判斷總線是否忙不就可以解決問題了嗎
回復

使用道具 舉報

地板
ID:1042338 發表于 2022-8-17 20:53 | 只看該作者
好老的MCU啊,用點新的MCU就更棒了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美久久久 | 黑人一级片视频 | 狠狠色网 | 国产 欧美 日韩 一区 | 秋霞av国产精品一区 | 中文字幕在线视频免费观看 | 色综合久久天天综合网 | 国产精品综合一区二区 | 日韩欧美黄色 | 欧美国产精品一区二区三区 | 中文字幕二区 | 成人在线观看欧美 | 国产色网站 | 中文字幕日韩欧美一区二区三区 | 黄色国产在线播放 | 中文精品视频 | 天天草天天干天天 | 亚洲成人一区二区 | 国产精品自拍视频 | 女朋友的闺蜜3韩国三级 | 欧美精品在线播放 | 亚洲二区在线 | 欧美福利三区 | 天天操天天射天天 | 日韩欧美福利视频 | 国产精品成人在线播放 | 精品毛片在线观看 | 欧美日韩中文在线观看 | 国产极品粉嫩美女呻吟在线看人 | 一区二区三区中文字幕 | 国产一区二区三区四区五区加勒比 | 91不卡在线 | 992人人草 | 久久99网 | 中文字幕精品一区久久久久 | 亚洲最大的黄色网址 | 91精品国产自产精品男人的天堂 | 青青草av在线播放 | 黄a网| 久久久久久看片 | 美女视频黄色片 |