本帖最后由 一路向北lm 于 2025-3-13 15:25 编辑
STM32N6支持XGA(1024x768)分辨率显示,有Chrom-ART、Chrom-GRC、NeoChrom GPU、JPEG codec等外设提高图像性能,简单使用LTDC驱动一下屏幕。查看原理图,确认引脚情况。
配置LTDC功能,设置在FSBL初始化,显示模式为RGB5656 - /**
- * [url=home.php?mod=space&uid=247401]@brief[/url] LTDC Initialization Function
- * @param None
- * @retval None
- */
- static void MX_LTDC_Init(void)
- {
- /* USER CODE BEGIN LTDC_Init 0 */
- /* USER CODE END LTDC_Init 0 */
- LTDC_LayerCfgTypeDef pLayerCfg = {0};
- /* USER CODE BEGIN LTDC_Init 1 */
- /* USER CODE END LTDC_Init 1 */
- hltdc.Instance = LTDC;
- hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
- hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
- hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
- hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
- hltdc.Init.HorizontalSync = 4;
- hltdc.Init.VerticalSync = 4;
- hltdc.Init.AccumulatedHBP = 12;
- hltdc.Init.AccumulatedVBP = 12;
- hltdc.Init.AccumulatedActiveW = 812;
- hltdc.Init.AccumulatedActiveH = 492;
- hltdc.Init.TotalWidth = 820;
- hltdc.Init.TotalHeigh = 500;
- hltdc.Init.Backcolor.Blue = 0;
- hltdc.Init.Backcolor.Green = 0;
- hltdc.Init.Backcolor.Red = 0;
- if (HAL_LTDC_Init(&hltdc) != HAL_OK)
- {
- Error_Handler();
- }
- pLayerCfg.WindowX0 = 0;
- pLayerCfg.WindowX1 = 156;
- pLayerCfg.WindowY0 = 0;
- pLayerCfg.WindowY1 = 129;
- pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
- pLayerCfg.Alpha = 255;
- pLayerCfg.Alpha0 = 0;
- pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
- pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
- pLayerCfg.FBStartAdress = 0;
- pLayerCfg.ImageWidth = 156;
- pLayerCfg.ImageHeight = 129;
- pLayerCfg.Backcolor.Blue = 255;
- pLayerCfg.Backcolor.Green = 0;
- pLayerCfg.Backcolor.Red = 0;
- if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN LTDC_Init 2 */
- RIMC_MasterConfig_t RIMC_master = {0};
- RIMC_master.MasterCID = RIF_CID_1;
- RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV;
- HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC1 , &RIMC_master);
- HAL_RIF_RISC_SetSlaveSecureAttributes(RIF_RISC_PERIPH_INDEX_LTDCL1 , RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV);
- /* USER CODE END LTDC_Init 2 */
- }
设置显示内容的图片,在主循环中每隔1s切换显示方向 具体显示效果如下:
|