2025-10-12 7:35 PM
I’m using an analog camera with a CVBS output connected to an ADV7280/TVP5150, which interfaces with the DCMI on the STM32H747. However, the LCD display is not showing any image. Previously, I used the OV5640 camera, and it worked fine.
void CAM_DMA2D_Config(uint16_t xsize, uint32_t ysize)
{
/* output,Configure the DMA2D Mode, Color Mode and output offset */
hlcd_dma2d.Instance = DMA2D;
hlcd_dma2d.Init.Mode = DMA2D_M2M_PFC; // no pixformat convert
hlcd_dma2d.Init.ColorMode = DMA2D_OUTPUT_RGB565;
hlcd_dma2d.Init.OutputOffset = 0;
/* DMA2D Callbacks Configuration */
hlcd_dma2d.XferCpltCallback = CAM_DMA2D_TransferCompleteCallback;
/* Input,Foreground Configuration */
hlcd_dma2d.LayerCfg[1].AlphaMode = DMA2D_REPLACE_ALPHA;
hlcd_dma2d.LayerCfg[1].InputAlpha = 0xFF;
//hlcd_dma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_RGB565;
hlcd_dma2d.LayerCfg[1].InputColorMode = DMA2D_INPUT_YCBCR;
hlcd_dma2d.LayerCfg[1].InputOffset = 0;
hlcd_dma2d.Instance = DMA2D;
HAL_DMA2D_DeInit(&hlcd_dma2d);
/* DMA2D Initialization */
if(HAL_DMA2D_Init(&hlcd_dma2d) == HAL_OK)
{
if(HAL_DMA2D_ConfigLayer(&hlcd_dma2d, 1) != HAL_OK)
{
Error_Handler();
}
}
else
{
Error_Handler();
}
}