STM32F4 Discovery - DCMI does not call HAL_DCMI_FrameEventCallback Camera : ov9655 I am using CubeMX to generate the code
- February 13, 2020
- 16 replies
- 4452 views
Hello There,
I am trying to connect OV9655 camera (WaveShare) module with STm32f4 discovery board. After generating files from CubeMX and importing ov9655 drivers (ov9655.h & ov9655.c) I am able to get HAL_DCMI_LineEventCallback and HAL_DCMI_VsyncEventCallback event but not able to get HAL_DCMI_FrameEventCallback.
I am using Snapshot mode
BSP_CAMERA_Init(RESOLUTION_R320x240);
HAL_Delay(1000);
HAL_DCMI_Start_DMA(&hdcmi, DCMI_MODE_SNAPSHOT, (uint32_t)CAMERA_FRAME_BUFFER, GetSize((uint8_t *)RESOLUTION_R320x240));
Please suggest where I am making mistake. Also please let me if any further info needed.
DMA Initialization
/**
* Enable DMA controller clock
*/
static void MX_DMA_Init(void)
{
/* DMA controller clock enable */
__HAL_RCC_DMA2_CLK_ENABLE();
/* DMA interrupt init */
/* DMA2_Stream1_IRQn interrupt configuration */
HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn);
}
/**
* @brief DCMI Initialization Function
* @param None
* @retval None
*/
static void MX_DCMI_Init(void)
{
/* USER CODE BEGIN DCMI_Init 0 */
/* USER CODE END DCMI_Init 0 */
/* USER CODE BEGIN DCMI_Init 1 */
/* USER CODE END DCMI_Init 1 */
hdcmi.Instance = DCMI;
hdcmi.Init.SynchroMode = DCMI_SYNCHRO_HARDWARE;
hdcmi.Init.PCKPolarity = DCMI_PCKPOLARITY_FALLING;
hdcmi.Init.VSPolarity = DCMI_VSPOLARITY_LOW;
hdcmi.Init.HSPolarity = DCMI_HSPOLARITY_LOW;
hdcmi.Init.CaptureRate = DCMI_CR_ALL_FRAME;
hdcmi.Init.ExtendedDataMode = DCMI_EXTEND_DATA_8B;
hdcmi.Init.JPEGMode = DCMI_JPEG_DISABLE;
if (HAL_DCMI_Init(&hdcmi) != HAL_OK)
{
Error_Handler();
}
