此例程为STM324x9I_EVAL:DCMI_CaptureMode,使用的stm32f4xx_hal_driver,

At each camera line event, the line is converted to ARGB8888 pixel format
and transferred to LCD_FRAME_BUFFER using DMA2D.

这里仅记录例程中DMA2D这段,Camera RGB565格式 LCD RGB888

 1 /**
 2   * @brief  Converts a line to an ARGB8888 pixel format.
 3   * @param  pSrc: Pointer to source buffer
 4   * @param  pDst: Output color
 5   * @param  xSize: Buffer width
 6   * @param  ColorMode: Input color mode   
 7   * @retval None
 8   */
 9 static void LCD_LL_ConvertLineToARGB8888(void *pSrc, void *pDst)
10 { 
11   /* Enable DMA2D clock */
12   __HAL_RCC_DMA2D_CLK_ENABLE();
13   
14   /* Configure the DMA2D Mode, Color Mode and output offset */
15   hdma2d_eval.Init.Mode         = DMA2D_M2M_PFC;
16   hdma2d_eval.Init.ColorMode    = DMA2D_ARGB8888;
17   hdma2d_eval.Init.OutputOffset = 0;     
18   
19   /* Foreground Configuration */
20   hdma2d_eval.LayerCfg[1].AlphaMode = DMA2D_NO_MODIF_ALPHA;
21   hdma2d_eval.LayerCfg[1].InputAlpha = 0xFF;
22   hdma2d_eval.LayerCfg[1].InputColorMode = CM_RGB565;
23   hdma2d_eval.LayerCfg[1].InputOffset = 0;
24   
25   hdma2d_eval.Instance = DMA2D; 
26   
27   /* DMA2D Initialization */
28   if(HAL_DMA2D_Init(&hdma2d_eval) == HAL_OK) 
29   {
30     if(HAL_DMA2D_ConfigLayer(&hdma2d_eval, 1) == HAL_OK) 
31     {
32       if (HAL_DMA2D_Start(&hdma2d_eval, (uint32_t)pSrc, (uint32_t)pDst, BSP_LCD_GetXSize(), 1) == HAL_OK)
33       {
34         /* Polling For DMA transfer */  
35         HAL_DMA2D_PollForTransfer(&hdma2d_eval, 10);
36       }
37     }
38   }
39   else
40   {
41     /* FatFs Initialization Error */
42     Error_Handler();
43   }
44 }
LCD_LL_ConvertLineToARGB8888

相关文章:

  • 2022-12-23
  • 2021-10-08
  • 2021-10-21
  • 2021-12-25
  • 2021-11-06
  • 2021-11-01
  • 2021-11-20
  • 2022-01-05
猜你喜欢
  • 2021-11-06
  • 2021-10-13
  • 2022-01-22
  • 2022-12-23
  • 2021-12-18
  • 2021-11-29
  • 2021-06-09
相关资源
相似解决方案