本帖最后由 zamm 于 2017-8-6 14:07 编辑
摄像头的信号时序用示波器看了一下大概如图。
现在的情况是,用手拔插一下像素时钟线,会产生一次中断,之后数据寄存器就会更新,但是就是一直不会产生中断。
请问有人遇到过同样的问题吗?请问是如何解决的
或者有没有人将飞思卡尔用的鹰眼摄像头,移植到stm32f4,可否分享一份程序学习一下。
十分感谢
初始化程序如下[mw_shl_code=applescript,true]
void DCMI_Init(void)
{
//设置IO
RCC->AHB1ENR|=1<<0; //使能外设PORTA时钟
RCC->AHB1ENR|=1<<1; //使能外设PORTB时钟
RCC->AHB1ENR|=1<<2; //使能外设PORTC时钟
RCC->AHB1ENR|=1<<4; //使能外设PORTE时钟
RCC->AHB2ENR|=1<<0; //能DCMI时钟
GPIO_Set(GPIOA,PIN4|PIN6,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PA4/6 复用功能输出
GPIO_Set(GPIOB,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PB6/7 复用功能输出
GPIO_Set(GPIOC,PIN6|PIN7|PIN8|PIN9|PIN11,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU);//PC6/7/8/9/11 复用功能输出
GPIO_Set(GPIOE,PIN5|PIN6,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_100M,GPIO_PUPD_PU); //PE5/6 复用功能输出
delay_ms(100);
GPIO_AF_Set(GPIOA,4,13); //PA4,AF13 DCMI_HSYNC
GPIO_AF_Set(GPIOA,6,13); //PA6,AF13 DCMI_PCLK
GPIO_AF_Set(GPIOB,7,13); //PB7,AF13 DCMI_VSYNC
GPIO_AF_Set(GPIOC,6,13); //PC6,AF13 DCMI_D0
GPIO_AF_Set(GPIOC,7,13); //PC7,AF13 DCMI_D1
GPIO_AF_Set(GPIOC,8,13); //PC8,AF13 DCMI_D2
GPIO_AF_Set(GPIOC,9,13); //PC9,AF13 DCMI_D3
GPIO_AF_Set(GPIOC,11,13); //PC11,AF13 DCMI_D4
GPIO_AF_Set(GPIOB,6,13); //PB6,AF13 DCMI_D5
GPIO_AF_Set(GPIOE,5,13); //PE5,AF13 DCMI_D6
GPIO_AF_Set(GPIOE,6,13); //PE6,AF13 DCMI_D7
delay_ms(100);
//清除原来的设置
DCMI->CR=0x0;
DCMI->IER=0x0;
DCMI->ICR=0x1F;
DCMI->ESCR=0x0;
DCMI->ESUR=0x0;
DCMI->CWSTRTR=0x0;
DCMI->CWSIZER=0x0;
DCMI->CR|=0<<1; //连续模式
DCMI->CR|=0<<2; //全帧捕获
DCMI->CR|=0<<4; //硬件同步HSYNC,VSYNC
DCMI->CR|=1<<5; //PCLK 上升沿有效
DCMI->CR|=0<<6; //HSYNC 低电平有效
DCMI->CR|=1<<7; //VSYNC高电平有效
DCMI->CR|=0<<8; //捕获所有的帧
DCMI->CR|=0<<10; //8位数据格式
DCMI->IER|=1<<0; //开启帧中断
DCMI->IER|=1<<3; //开启帧中断
DCMI->IER|=1<<4; //开启帧中断
//
MY_NVIC_Init(1,0,DCMI_IRQn,2); //抢占1,子优先级2,组2 //设置IO
DCMI->CR|=1<<14; //DCMI使能
} [/mw_shl_code]
要是解决了,可否给我参考一下
一周热门 更多>