欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 死磕到底—STM32F103驅(qū)動(dòng)無(wú)FIFO無(wú)時(shí)鐘ov7670 [打印本頁(yè)]

作者: 新洲羅遠(yuǎn)    時(shí)間: 2020-6-21 15:28
標(biāo)題: 死磕到底—STM32F103驅(qū)動(dòng)無(wú)FIFO無(wú)時(shí)鐘ov7670
一、攝像頭一定要提供時(shí)鐘,我用定時(shí)器產(chǎn)生兩個(gè)頻率的時(shí)鐘
      1、18M供初始化用,我反復(fù)試驗(yàn)我的這個(gè)攝像頭,12M不能工作,18M到24M都行。
void XCLK_Output_ON(void
{
   // 利用TIM3_CH2在PA7上為攝像頭XCLK提供18MHz的時(shí)鐘        12M不行
        
  RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
  //AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_1;  //設(shè)置TIM3_CH2部分重映射到PB5上不映射就在PA7。
  //GPIOB->CRL = (GPIOB->CRL & 0xff0fffff) | 0xb00000; // PB5設(shè)為復(fù)用推挽輸出
  GPIOA->CRL = (GPIOA->CRL & 0x0fffffff) | 0xb0000000; // PA7設(shè)為復(fù)用推挽輸出
        
  TIM3->ARR = 3; // 72MHz/(3+1)=18MHz (5+1=12M)
  TIM3->PSC = 0; // 不分頻
  TIM3->EGR = TIM_EGR_UG;

  TIM3->CCR2 = 1; // 決定占空比
  TIM3->CCMR1 = TIM_CCMR1_OC2M; // PWM2模式
  TIM3->CCER = TIM_CCER_CC2E; // 打開輸出比較
  TIM3->CR1 = TIM_CR1_CEN; // 打開定時(shí)器
}        

   2、攝像頭工作用時(shí)鐘,當(dāng)然低點(diǎn)好,但是72M/26=2.76M不穩(wěn)定,再低就不能工作,用72M/25=2.88M
void XCLK_Output_ON8(void) // 關(guān)定時(shí)器
{        
   // 利用TIM3_CH2在PA7上為攝像頭XCLK提供2.88MHz的時(shí)鐘        取數(shù)用
                TIM3->CR1 = TIM_CR1_UDIS ; // 關(guān)定時(shí)器
        
  RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;
  //AFIO->MAPR |= AFIO_MAPR_TIM3_REMAP_1;  //設(shè)置TIM3_CH2部分重映射到PB5上不映射就在PA7。
  //GPIOB->CRL = (GPIOB->CRL & 0xff0fffff) | 0xb00000; // PB5設(shè)為復(fù)用推挽輸出
  GPIOA->CRL = (GPIOA->CRL & 0x0fffffff) | 0xb0000000; // PA7設(shè)為復(fù)用推挽輸出
        
  TIM3->ARR = 24; // 72MHz/(24+1) =
  TIM3->PSC = 0; // 分頻(72/9/8)=1
  TIM3->EGR = TIM_EGR_UG;

  TIM3->CCR2 = 1; // 決定占空比
  TIM3->CCMR1 = TIM_CCMR1_OC2M; // PWM2模式
  TIM3->CCER = TIM_CCER_CC2E; // 打開輸出比較
  TIM3->CR1 = TIM_CR1_CEN; // 打開定時(shí)器
}


二、攝像頭取數(shù)據(jù)是關(guān)鍵,越快越好,我把無(wú)關(guān)的都減掉,可移動(dòng)的語(yǔ)句移到前邊去,
      本來(lái)要取連續(xù)的兩個(gè)數(shù),我也只取一個(gè),只能得到一個(gè)紅色的圖像。

while(1){
                while(OV7670_VSYNC==0);//
                while(OV7670_VSYNC==1);//                只有在VSYNC為低時(shí),才傳輸數(shù)據(jù)
                          GPIOB->CRL=0X88888888; //上拉下拉輸入        GPIOB
        
                for(i=0;i<240;i++)               
                {
                        while(OV7670_HREF==0);
                        for(j=0;j<320;j++)
                        {                                 
                          // GPIOB->CRL=0X88888888; //上拉下拉輸入
                                while(OV7670_PCLK==0);                        
                                color=OV7670_DATA;                //讀數(shù)據(jù)
                                //while(OV7670_PCLK==1);
                                color<<=8;
                                color &=0xf800;
                           //while(OV7670_PCLK==0);   
                          //color|=OV7670_DATA;                //讀數(shù)據(jù)               
                           //while(OV7670_PCLK==1);
                                // GPIOB->CRL=0X33333333;                //推挽輸出50M                                          
                        LCD_WriteData_Color(color);
                         }         
                 }                                          
  }

     這部分在MAIN文件中,這個(gè)文件二級(jí)優(yōu)化,可以加快速度。我的開發(fā)板顯示二級(jí)優(yōu)化會(huì)出問(wèn)題,所以只優(yōu)化這個(gè)文件。
     我也是在優(yōu)化后才建立的信心。
    編譯,運(yùn)行,圖像出來(lái)了,紅色的,數(shù)據(jù)還有些錯(cuò)誤,大概是個(gè)影子吧。
   貼上整個(gè)項(xiàng)目,歡迎大家交流!
pzOV7670.7z (534.39 KB, 下載次數(shù): 128)





作者: 新洲羅遠(yuǎn)    時(shí)間: 2020-6-21 17:45
攝像頭設(shè)置為2分頻,就容易處理了
作者: wkaikai    時(shí)間: 2021-10-9 17:31
目前還沒學(xué)到這么高級(jí)的呢,等能力再提升提升再來(lái)看。
作者: 呆滯麥粒    時(shí)間: 2021-10-10 18:23
請(qǐng)問(wèn)怎么把數(shù)據(jù)傳到PC端




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1