欧美极品高清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)
2020-6-21 16:11 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
新洲羅遠(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