本帖最后由 kevin_ares 于 2015-11-25 18:02 编辑
DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling;//DCMI_PCKPolarity_Falling
DCMI_InitStructure.DCMI_VSPolarity =DCMI_VSPolarity_High;//
DCMI_InitStructure.DCMI_HSPolarity =DCMI_HSPolarity_Low ;//
同样的板子,接ov2640是能读出数据的,这三个值排列组合都不行
能产生行中断,但DMA没读到数据,剩余字节数是满的
DCMI_ITConfig(DCMI_IT_FRAME|DCMI_IT_LINE ,ENABLE);
不能产生帧中断
求问是哪儿的问题,搞了几天了
V 线与H线的关系与2640是一样的,H线与P线的极性与2640是反的
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
- GPIO_InitTypeDef GPIO_InitStructure;
- NVIC_InitTypeDef NVIC_InitStructure;
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOC|RCC_AHB1Periph_GPIOE, ENABLE);//ʹÄÜGPIOA B C E ʱÖÓ
- RCC_AHB2PeriphClockCmd(RCC_AHB2Periph_DCMI,ENABLE);//ʹÄÜDCMIʱÖÓ
- //PA4/6³õʼ»¯ÉèÖÃ
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_6;//PA4/6 ¸´Óù¦ÄÜÊä³ö
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; //¸´Óù¦ÄÜÊä³ö
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;//ÍÆÍìÊä³ö
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//ÉÏÀ
- GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7|GPIO_Pin_6;// PB6/7 ¸´Óù¦ÄÜÊä³ö
- GPIO_Init(GPIOB, &GPIO_InitStructure);//³õʼ»¯
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;//PC6/7/¸´Óù¦ÄÜÊä³ö
- GPIO_Init(GPIOC, &GPIO_InitStructure);//³õʼ»¯
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6;//PE5/6 ¸´Óù¦ÄÜÊä³ö
- GPIO_Init(GPIOE, &GPIO_InitStructure);//³õʼ»¯
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource4,GPIO_AF_DCMI); //PA4,AF13 DCMI_HSYNC
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource6,GPIO_AF_DCMI); //PA6,AF13 DCMI_PCLK
- GPIO_PinAFConfig(GPIOB,GPIO_PinSource7,GPIO_AF_DCMI); //PB7,AF13 DCMI_VSYNC
- GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_DCMI); //PC6,AF13 DCMI_D0
- GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_DCMI); //PC7,AF13 DCMI_D1
- GPIO_PinAFConfig(GPIOE,GPIO_PinSource0,GPIO_AF_DCMI); //PE0,AF13 DCMI_D2
- GPIO_PinAFConfig(GPIOE,GPIO_PinSource1,GPIO_AF_DCMI); //PE1,AF13 DCMI_D3
- GPIO_PinAFConfig(GPIOE,GPIO_PinSource4,GPIO_AF_DCMI); //PE4,AF13 DCMI_D4
- GPIO_PinAFConfig(GPIOB,GPIO_PinSource6,GPIO_AF_DCMI); //PB6,AF13 DCMI_D5
- GPIO_PinAFConfig(GPIOE,GPIO_PinSource5,GPIO_AF_DCMI); //PE5,AF13 DCMI_D6
- GPIO_PinAFConfig(GPIOE,GPIO_PinSource6,GPIO_AF_DCMI); //PE6,AF13 DCMI_D7
- DCMI_DeInit();//Çå³ýÔÀ´µÄÉèÖÃ
- //DCMI_InitStructure.DCMI_CaptureMode=DCMI_CaptureMode_SnapShot;//Á¬ÐøģʽDCMI_CaptureMode_SnapShot
- DCMI_InitStructure.DCMI_CaptureMode=DCMI_CaptureMode_Continuous;//Á¬ÐøģʽDCMI_CaptureMode_SnapShot
- DCMI_InitStructure.DCMI_CaptureRate=DCMI_CaptureRate_All_Frame;//È«Ö¡²¶»ñ
- DCMI_InitStructure.DCMI_ExtendedDataMode= DCMI_ExtendedDataMode_8b;//8λÊý¾Ý¸ñʽ
- // DCMI_InitStructure.DCMI_SynchroMode= DCMI_SynchroMode_Embedded;
- DCMI_InitStructure.DCMI_SynchroMode=DCMI_SynchroMode_Hardware;//Ó²¼þͬ²½HSYNC,VSYNC
- #ifdef USE_7725
-
- DCMI_InitStructure.DCMI_PCKPolarity = DCMI_PCKPolarity_Falling;//DCMI_PCKPolarity_Falling
- DCMI_InitStructure.DCMI_VSPolarity = DCMI_VSPolarity_High;//DCMI_VSPolarity_High
- DCMI_InitStructure.DCMI_HSPolarity =DCMI_HSPolarity_Low ;//DCMI_HSPolarity_Low
- #else
- DCMI_InitStructure.DCMI_VSPolarity=DCMI_VSPolarity_Low;//VSYNC µÍµçƽÓÐЧ
- DCMI_InitStructure.DCMI_HSPolarity= DCMI_HSPolarity_Low;//HSYNC µÍµçƽÓÐЧ
- DCMI_InitStructure.DCMI_PCKPolarity= DCMI_PCKPolarity_Rising;//PCLK ÉÏÉýÑØÓÐЧ
- #endif
- DCMI_Init(&DCMI_InitStructure);
- DCMI_ITConfig(DCMI_IT_FRAME|DCMI_IT_LINE ,ENABLE);//¿ªÆôÖ¡ÖжÏ
-
- DCMI_ClearITPendingBit(DCMI_IT_LINE|DCMI_IT_VSYNC|DCMI_IT_FRAME);
- DCMI_Cmd(ENABLE); //DCMIʹÄÜ
复制代码直接用GPIO中断能读到数据,DCMI就是不行...求指点,谢谢
- extern "C" void EXTI9_5_IRQHandler(void)
- {
- if(EXTI->PR & EXTI_Line6)//像素中断
- {
- //0,1, 2,3 (4,5) 6,7,8
- buf_7725[g_p]= ((GPIOC->IDR & 0xc0) | GPIOE->IDR & 0x3) |((GPIOE->IDR & 0x70)>>2)|((GPIOB->IDR & 0x40)>>1);
- g_p++;
- EXTI->PR = EXTI_Line6;
- }
- if(EXTI->PR & EXTI_Line4) //行中断
- {
- g_oldp=g_p;
- g_h++;
- g_p=0;
- EXTI->PR = EXTI_Line4;
- }
- if(EXTI->PR & EXTI_Line7) //帧中断
- {
-
- g_h=0;
- g_v++;
- EXTI->PR = EXTI_Line7;
- }
- }
复制代码怎么处理的,我的也是,直接进入中断错误处理。 我已经关闭了行和场中断,只有帧中断。dma中断没有处理。
/**
* @brief This function handles Hard fault interrupt.
*/
void HardFault_Handler(void)
一周热门 更多>