[STM32F4] stm32F411+ov7670无法进入中断函数,愁死额

[复制链接]
2528|3
 楼主| kerryneil 发表于 2015-7-28 11:01 | 显示全部楼层 |阅读模式
本帖最后由 kerryneil 于 2015-7-28 11:07 编辑

不带FIFO,图片通过上位机在PC端显示。场中断下降沿触发进入中断函数,可是一直进不去中断,求高手解答
  1. void Cam_Init(void)
  2. {
  3.           GPIO_InitTypeDef GPIO_InitStructure;
  4.           EXTI_InitTypeDef EXTI_InitStructure;
  5.           NVIC_InitTypeDef NVIC_InitStructure;
  6.           DMA_InitTypeDef  DMA_InitStructure;
  7.    //PC9  sioc  PB8  siod
  8.           RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2, ENABLE);//DMA2
  9.           RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA | RCC_AHB1Periph_GPIOB |
  10.           RCC_AHB1Periph_GPIOC |RCC_AHB1Periph_GPIOD, ENABLE);
  11.           RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG, ENABLE);
  12.           RCC_MCO2Config(RCC_MCO1Source_PLLCLK, RCC_MCO1Div_3);
  13.         
  14.           GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_MCO);
  15.           GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
  16.           GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
  17.           GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;   //AF***************IN
  18.           GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  19.           GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;  
  20.           GPIO_Init(GPIOA, &GPIO_InitStructure);           //XCLK
  21.                
  22.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;//PC5:PWRDOWN
  23.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
  24.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  25.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  26.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
  27.     GPIO_Init(GPIOC, &GPIO_InitStructure);
  28.     GPIO_ResetBits(GPIOC, GPIO_Pin_5);//power on

  29.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_FSMC);//DCMI_HSYNC    //**********//
  30.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource7, GPIO_AF_FSMC);//DCMI_PIXCLK  //***********//
  31.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource6, GPIO_AF_FSMC);//DCMI_D5                           
  32.     GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_FSMC);//DCMI_VSYNC  //**********//
  33.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource3, GPIO_AF_FSMC);//DCMI_D6
  34.     GPIO_PinAFConfig(GPIOC, GPIO_PinSource6, GPIO_AF_FSMC);//DCMI_D7                           
  35.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource10, GPIO_AF_FSMC);//DCMI_D0
  36.     GPIO_PinAFConfig(GPIOC, GPIO_PinSource7, GPIO_AF_FSMC);//DCMI_D1                           
  37.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource4, GPIO_AF_FSMC);//DCMI_D2
  38.     GPIO_PinAFConfig(GPIOC, GPIO_PinSource8, GPIO_AF_FSMC);//DCMI_D3
  39.     GPIO_PinAFConfig(GPIOB, GPIO_PinSource5, GPIO_AF_FSMC);//DCMI_D4 */

  40.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7| GPIO_Pin_8;
  41.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  42.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  43.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  44.     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
  45.     GPIO_Init(GPIOC, &GPIO_InitStructure);
  46.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7| GPIO_Pin_3| GPIO_Pin_4| GPIO_Pin_5| GPIO_Pin_10;
  47.     GPIO_Init(GPIOB, &GPIO_InitStructure);  
  48.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 |GPIO_Pin_6 ;
  49.     GPIO_Init(GPIOA, &GPIO_InitStructure);        
  50.                
  51.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;   //PCLK
  52.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  53.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  54.     GPIO_Init(GPIOB, &GPIO_InitStructure);        
  55.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 ;   //HSYNC
  56.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
  57.     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
  58.     GPIO_Init(GPIOA, &GPIO_InitStructure);                        
  59.                
  60.                
  61.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6  ;  //PA6中断
  62.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  63.                 GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
  64.                 GPIO_Init(GPIOA, &GPIO_InitStructure);  
  65.         
  66. //******************************************EXTI*******************************************//
  67.                 SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource6); //PA6作为外部中断引脚
  68.               
  69.                 EXTI_InitStructure.EXTI_Line = EXTI_Line6;     
  70.                 EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
  71.                 EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising_Falling ;
  72.                 EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
  73.                 EXTI_Init(&EXTI_InitStructure);  
  74. //*****************************************NVIC****************************************************//

  75.                 #ifdef  VECT_TAB_RAM
  76.                 NVIC_SetVectorTable(NVIC_VectTab_RAM,0x0);
  77.                 #else
  78.                 NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0);
  79.                 #endif
  80.                 NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
  81.                 NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn ;
  82.                 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  83.                 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  84.                 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  85.                 NVIC_Init(&NVIC_InitStructure);
  86.                
  87.           DMA_DeInit(DMA2_Stream7);
  88.           DMA_InitStructure.DMA_Channel = DMA_Channel_4;
  89.           DMA_InitStructure.DMA_PeripheralBaseAddr = (uint32_t)(&USART1->DR);        //外设地址
  90.           DMA_InitStructure.DMA_Memory0BaseAddr = (uint32_t)Image;        //内存地址
  91.           DMA_InitStructure.DMA_DIR = DMA_DIR_MemoryToPeripheral;
  92.                
  93.           DMA_InitStructure.DMA_BufferSize = 1;
  94.           DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
  95.           DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
  96.           DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
  97.           DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
  98.           DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;    //Circular持续传输
  99.           DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
  100.           DMA_Init(DMA2_Stream7, &DMA_InitStructure);
  101. }
mmuuss586 发表于 2015-7-28 12:41 | 显示全部楼层
看你程序设置的是,上下降沿都可以进入中断;

接个按键测试下看看;
还有中断函数怎么写的
 楼主| kerryneil 发表于 2015-7-30 16:00 | 显示全部楼层
谢谢啦哈,原来是IO口初始化配置错了
youneversay 发表于 2015-8-17 09:03 | 显示全部楼层
搂住你好,我最近也在做stm32f411+ov7670不带fifo,但是初始化一直不成功,你可以发一下源码吗?还有图片在上位机pc端怎么显示的?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部