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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

Stm32 IO口直接驅動OV7670 V1.0(keil)源碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:428277 發表于 2018-11-17 17:24 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
ov7670的一個版本的驅動,有點不太好用,但大家可以拿來做一下參考。

單片機源程序如下:
  1. /*******************************************************************************
  2. *  Copyright (C) 2012 All Rights Reserved
  3. *               
  4. * 軟件作者:        騎飛家族
  5. * 版權所有: 騎飛電子       
  6. * 創建日期:        2010年6月10日
  7. * 軟件歷史:        2010年11月2日修改
  8.                         2012年09月10日修改
  9. * Version:  3.0

  10. /* Includes ------------------------------------------------------------------*/
  11. #include "stm32f10x_lib.h"
  12. #include "ili9320.h"
  13. #include "OV7670.h"
  14. #include "delay.h"
  15. #include <stdio.h>

  16. ErrorStatus HSEStartUpStatus;

  17. #define PIX_LONG     ((u32)0x12c00)

  18. #define GUI_CONST_STORAGE const
  19. /* Private function prototypes -----------------------------------------------*/
  20. void Demo_Init(void);
  21. /* Private functions ---------------------------------------------------------*/


  22. /*******************************************************************************
  23. * Function Name  : main
  24. * Description    : Main program
  25. * Input          : None
  26. * Output         : None
  27. * Return         : None
  28. *******************************************************************************/


  29. int main(void)
  30. {

  31.     static unsigned long TimerCnt = 0;
  32.     static unsigned int temp7670 = 0;                                         
  33.         u16 value,val,val1,val2;
  34.        
  35.         Demo_Init();
  36.     ili9320_Initializtion();
  37.     ili9320_Clear(0xffff);
  38.     delay_ms(100);
  39.         ili9320_SetCursor(0,0);
  40.     LCD_WriteReg(0x0050, 0);
  41.     LCD_WriteReg(0x0052, 0);
  42.     LCD_WriteReg(0x0051, 239);
  43.     LCD_WriteReg(0x0053, 319);
  44.     LCD_WriteRAM_Prepare(); // 開顯存
  45.         //delay_ms(10);   
  46.        
  47.         while(1!=OV7670_init());       
  48.     while(1)
  49.     {
  50.         TimerCnt = 0;
  51.         temp7670 = 0;
  52.         CLK_init_ON(); // OV7670 XCLK 開
  53.         while(value & 0x0800)    value = GPIOC->IDR;   // Vsync=H   
  54.         while((~value) & 0x0800) value = GPIOC->IDR;   // Vhync=L
  55.         
  56.         CLK_init_OFF(); //OV7670 XCLK 關
  57.                 while(TimerCnt < 76800)
  58.         {
  59.                         XCLK_L;
  60.             XCLK_H;
  61.                         value = GPIOC->IDR;
  62.                         temp7670 ++;
  63.             
  64.                         if(value & 0x0100) // HREF = H ||(LCD_PCLK_STATE)
  65.             {       
  66.                                    //value = GPIOC->IDR;
  67.                                    //display[TimerCnt]=value;
  68.                           
  69.                            if((temp7670 == 1))// 高字節||(value & 0x0200) ||(LCD_PCLK_STATE)
  70.                 {
  71.                           val1=value& 0x00ff;

  72.                 }
  73.                 else // 低字節         if((temp7670 != 1)||(LCD_PCLK_STATE))  
  74.                 {
  75.                            val2= value<<8  ;          //
  76.                                         val =ili9320_BGR2RGB(val1 |val2);
  77.                     temp7670 = 0;
  78.                     LCD_WriteRAM(val); //TFT GRAM 數據
  79.                     TimerCnt ++;
  80.                 }
  81.             }
  82.                
  83.                                
  84.                 }
  85.   }  
  86. }


  87. /*******************************************************************************
  88. * Function Name  : Demo_Init
  89. * Description    : Initializes the demonstration application.
  90. * Input          : None
  91. * Output         : None
  92. * Return         : None
  93. *******************************************************************************/
  94. void Demo_Init(void)
  95. {
  96.   /* SYSCLK, HCLK, PCLK2 and PCLK1 configuration -----------------------------*/   
  97.   /* RCC system reset(for debug purpose) */
  98.   RCC_DeInit();

  99.   /* Enable HSE */
  100.   RCC_HSEConfig(RCC_HSE_ON);

  101.   /* Wait till HSE is ready */
  102.   HSEStartUpStatus = RCC_WaitForHSEStartUp();

  103.   if(HSEStartUpStatus == SUCCESS)
  104.   {
  105.     /* Enable Prefetch Buffer */
  106.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

  107.     /* Flash 2 wait state */
  108.     FLASH_SetLatency(FLASH_Latency_2);
  109.    
  110.     /* HCLK = SYSCLK */
  111.     RCC_HCLKConfig(RCC_SYSCLK_Div1);
  112.   
  113.     /* PCLK2 = HCLK */
  114.     RCC_PCLK2Config(RCC_HCLK_Div1);

  115.     /* PCLK1 = HCLK/2 */
  116.     RCC_PCLK1Config(RCC_HCLK_Div2);

  117.     /* PLLCLK = 8MHz * 9 = 72 MHz */
  118.     RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_16);

  119.     /* Enable PLL */
  120.     RCC_PLLCmd(ENABLE);

  121.     /* Wait till PLL is ready */
  122.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
  123.     {
  124.     }

  125.     /* Select PLL as system clock source */
  126.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

  127.     /* Wait till PLL is used as system clock source */
  128.     while(RCC_GetSYSCLKSource() != 0x08)
  129.     {
  130.     }
  131.       /* Enable USART1 and GPIOA clock */
  132.      RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);
  133.   }

  134.   /* Enable GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
  135.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC
  136.          | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG
  137.          | RCC_APB2Periph_AFIO, ENABLE);

  138. /*------------------- Resources Initialization -----------------------------*/
  139.      /* ADCCLK = PCLK2/8 */
  140.    RCC_ADCCLKConfig(RCC_PCLK2_Div8);
  141.    
  142.     /* Enable DMA clock */
  143.    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

  144.    /* Enable ADC1 and GPIOC clock */
  145.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL, ENABLE);

  146.   /* If HSE is not detected at program startup */
  147.   if(HSEStartUpStatus == ERROR)
  148.   {
  149.     /* Generate NMI exception */
  150.     NVIC_SetSystemHandlerPendingBit(SystemHandler_NMI);
  151.   }  
  152.    

  153. }


  154. #ifdef  DEBUG
  155. /*******************************************************************************
  156. * Function Name  : assert_failed
  157. * Description    : Reports the name of the source file and the source line number
  158. *                  where the assert_param error has occurred.
  159. * Input          : - file: pointer to the source file name
  160. *                  - line: assert_param error line source number
  161. * Output         : None
  162. * Return         : None
  163. *******************************************************************************/
  164. void assert_failed(u8* file, u32 line)
  165. {
  166.     /* User can add his own implementation to report the file name and line number */
  167. }
  168. #endif
復制代碼

所有資料51hei提供下載:
OV7670直接驅動.zip (2.56 MB, 下載次數: 20)


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

使用道具 舉報

沙發
ID:267330 發表于 2019-1-1 18:40 | 只看該作者
為什么下載了文件打不開啊
回復

使用道具 舉報

板凳
ID:443625 發表于 2019-1-2 11:31 | 只看該作者
帶fifo還是不帶的呀
回復

使用道具 舉報

地板
ID:466908 發表于 2019-5-1 10:24 | 只看該作者
有沒有帶FIFO
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久综合国产 | 久久三区| 91久久精品一区二区二区 | 中文字幕1区2区 | 国产精品一区二区久久精品爱微奶 | 91直接看| 中文字幕在线中文 | 91不卡在线 | 国产免费一区二区 | 久久久爽爽爽美女图片 | 中文字幕在线观看www | 久久久久亚洲精品国产 | 日韩成人专区 | 69av网| 久久99深爱久久99精品 | 久久久精品一区 | 国产中文一区二区三区 | 亚洲精品免费观看 | 四虎成人免费视频 | 亚洲视频免费在线看 | 欧美一级黄色免费看 | 国产中文区二幕区2012 | 日本精a在线观看 | 欧美一区二区三区电影 | 免费亚洲婷婷 | 黑人巨大精品欧美一区二区免费 | 亚洲国产精品久久久久 | 欧美精品在线免费观看 | 久久99精品久久久久久国产越南 | 国产精品一区一区三区 | 国产成人福利在线观看 | 国产午夜精品久久久久 | 午夜极品| 午夜免费网站 | 国家aaa的一级看片 h片在线看 | 日韩一区二区三区在线看 | 天天操夜夜爽 | 国产成人高清在线观看 | 91原创视频在线观看 | 人人澡视频 | 成人在线观看中文字幕 |