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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3011|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

Stm32 IO口直接驅(qū)動(dòng)OV7670的源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:380554 發(fā)表于 2018-7-29 18:14 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
OV7670 IO 直接驅(qū)動(dòng) Keil C 代碼

單片機(jī)源程序如下:
  1. /*******************************************************************************
  2. *  Copyright (C) 2012 All Rights Reserved
  3. *               
  4. * 軟件作者:        騎飛家族
  5. * 版權(quán)所有: 騎飛電子       


  6. /* Includes ------------------------------------------------------------------*/
  7. #include "stm32f10x_lib.h"
  8. #include "ili9320.h"
  9. #include "OV7670.h"
  10. #include "delay.h"
  11. #include <stdio.h>

  12. ErrorStatus HSEStartUpStatus;

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

  14. #define GUI_CONST_STORAGE const
  15. /* Private function prototypes -----------------------------------------------*/
  16. void Demo_Init(void);
  17. /* Private functions ---------------------------------------------------------*/


  18. /*******************************************************************************
  19. * Function Name  : main
  20. * Description    : Main program
  21. * Input          : None
  22. * Output         : None
  23. * Return         : None
  24. *******************************************************************************/


  25. int main(void)
  26. {

  27.     static unsigned long TimerCnt = 0;
  28.     static unsigned int temp7670 = 0;                                         
  29.         u16 value,val,val1,val2;
  30.        
  31.         Demo_Init();
  32.     ili9320_Initializtion();
  33.     ili9320_Clear(0xffff);
  34.     delay_ms(100);
  35.         ili9320_SetCursor(0,0);
  36.     LCD_WriteReg(0x0050, 0);
  37.     LCD_WriteReg(0x0052, 0);
  38.     LCD_WriteReg(0x0051, 239);
  39.     LCD_WriteReg(0x0053, 319);
  40.     LCD_WriteRAM_Prepare(); // 開(kāi)顯存
  41.         //delay_ms(10);   
  42.        
  43.         while(1!=OV7670_init());       
  44.     while(1)
  45.     {
  46.         TimerCnt = 0;
  47.         temp7670 = 0;
  48.         CLK_init_ON(); // OV7670 XCLK 開(kāi)
  49.         while(value & 0x0800)    value = GPIOC->IDR;   // Vsync=H   
  50.         while((~value) & 0x0800) value = GPIOC->IDR;   // Vhync=L
  51.         
  52.         CLK_init_OFF(); //OV7670 XCLK 關(guān)
  53.                 while(TimerCnt < 76800)
  54.         {
  55.                         XCLK_L;            //  GPIOA->BRR =   GPIO_Pin_8;                                        為0或1
  56.             XCLK_H;                   // GPIOA->BSRR =  GPIO_Pin_8;   端口復(fù)位寄存器   為0
  57.                         value = GPIOC->IDR;
  58.                         temp7670 ++;
  59.             
  60.                         if(value & 0x0100) // HREF = H ||(LCD_PCLK_STATE)
  61.             {       
  62.                                    //value = GPIOC->IDR;
  63.                                    //display[TimerCnt]=value;
  64.                           
  65.                            if((temp7670 == 1))// 高字節(jié)||(value & 0x0200) ||(LCD_PCLK_STATE)
  66.                 {
  67.                           val1=value& 0x00ff;

  68.                 }
  69.                 else // 低字節(jié)         if((temp7670 != 1)||(LCD_PCLK_STATE))  
  70.                 {
  71.                            val2= value<<8  ;          //
  72.                                         val =ili9320_BGR2RGB(val1 |val2);
  73.                     temp7670 = 0;
  74.                     LCD_WriteRAM(val); //TFT GRAM 數(shù)據(jù)
  75.                     TimerCnt ++;
  76.                 }
  77.             }
  78.                
  79.                                
  80.                 }
  81.   }  
  82. }


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

  95.   /* Enable HSE */
  96.   RCC_HSEConfig(RCC_HSE_ON);

  97.   /* Wait till HSE is ready */
  98.   HSEStartUpStatus = RCC_WaitForHSEStartUp();

  99.   if(HSEStartUpStatus == SUCCESS)
  100.   {
  101.     /* Enable Prefetch Buffer */
  102.     FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

  103.     /* Flash 2 wait state */
  104.     FLASH_SetLatency(FLASH_Latency_2);
  105.    
  106.     /* HCLK = SYSCLK */
  107.     RCC_HCLKConfig(RCC_SYSCLK_Div1);
  108.   
  109.     /* PCLK2 = HCLK */
  110.     RCC_PCLK2Config(RCC_HCLK_Div1);

  111.     /* PCLK1 = HCLK/2 */
  112.     RCC_PCLK1Config(RCC_HCLK_Div2);

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

  115.     /* Enable PLL */
  116.     RCC_PLLCmd(ENABLE);

  117.     /* Wait till PLL is ready */
  118.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
  119.     {
  120.     }

  121.     /* Select PLL as system clock source */
  122.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);

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

  130.   /* Enable GPIOA, GPIOB, GPIOC, GPIOD, GPIOE, GPIOF, GPIOG and AFIO clocks */
  131.   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC
  132.          | RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOE | RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG
  133.          | RCC_APB2Periph_AFIO, ENABLE);

  134. /*------------------- Resources Initialization -----------------------------*/
  135.      /* ADCCLK = PCLK2/8 */
  136.    RCC_ADCCLKConfig(RCC_PCLK2_Div8);
  137.    
  138.     /* Enable DMA clock */
  139.    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);

  140.    /* Enable ADC1 and GPIOC clock */
  141.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_ALL, ENABLE);

  142.   /* If HSE is not detected at program startup */
  143.   if(HSEStartUpStatus == ERROR)
  144.   {
  145.     /* Generate NMI exception */
  146.     NVIC_SetSystemHandlerPendingBit(SystemHandler_NMI);
  147.   }  
  148.    

  149. }


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

復(fù)制代碼

所有資料51hei提供下載:
Stm32 IO口直接驅(qū)動(dòng)OV7670 V1.0(keil).rar (269.92 KB, 下載次數(shù): 32)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:435355 發(fā)表于 2018-12-21 19:48 | 只看該作者
為什么下載了文件打不開(kāi)啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品久久亚洲 | 男人天堂av网站 | 久久久久久高潮国产精品视 | 国精产品一区二区三区 | 久久夜视频 | 欧美日韩三级视频 | 成年网站在线观看 | 看片91| 在线中文字幕亚洲 | 亚洲欧美日韩精品久久亚洲区 | 国产区在线观看 | av黄色在线 | 国产精品免费播放 | 久久精品一级 | 国产日韩精品一区 | 啪啪免费网站 | 精品视频在线观看 | 女女百合av大片一区二区三区九县 | 亚洲欧美日韩精品久久亚洲区 | 日韩av福利在线观看 | 欧美福利| 日日操日日干 | 亚洲国产精选 | 成人在线精品视频 | 亚洲成av人片在线观看 | 一区二区三区视频 | 久久成人精品视频 | 国产精品一区二区三区99 | 国产精品视频一区二区三区四蜜臂 | 久久五月婷 | 久久er精品 | 97视频人人澡人人爽 | 欧美激情在线精品一区二区三区 | 91免费入口 | 欧美成人免费电影 | 一区二区三区四区在线视频 | 欧美精品在线一区二区三区 | 一区二区国产在线 | 日本精品一区二区三区在线观看 | 亚洲日韩欧美一区二区在线 | 美女视频黄的 |