[STM32N6] 6.运行STM32N6的LTDC驱动LCD显示:

[复制链接]
 楼主| 一路向北lm 发表于 2025-3-13 15:20 | 显示全部楼层 |阅读模式
本帖最后由 一路向北lm 于 2025-3-13 15:25 编辑

STM32N6支持XGA(1024x768)分辨率显示,有Chrom-ART、Chrom-GRC、NeoChrom GPU、JPEG codec等外设提高图像性能,简单使用LTDC驱动一下屏幕。查看原理图,确认引脚情况。
7684367d2874346033.png
配置LTDC功能,设置在FSBL初始化,显示模式为RGB5656
  1. /**
  2.   * [url=home.php?mod=space&uid=247401]@brief[/url] LTDC Initialization Function
  3.   * @param None
  4.   * @retval None
  5.   */
  6. static void MX_LTDC_Init(void)
  7. {

  8.   /* USER CODE BEGIN LTDC_Init 0 */

  9.   /* USER CODE END LTDC_Init 0 */

  10.   LTDC_LayerCfgTypeDef pLayerCfg = {0};

  11.   /* USER CODE BEGIN LTDC_Init 1 */

  12.   /* USER CODE END LTDC_Init 1 */
  13.   hltdc.Instance = LTDC;
  14.   hltdc.Init.HSPolarity = LTDC_HSPOLARITY_AL;
  15.   hltdc.Init.VSPolarity = LTDC_VSPOLARITY_AL;
  16.   hltdc.Init.DEPolarity = LTDC_DEPOLARITY_AL;
  17.   hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
  18.   hltdc.Init.HorizontalSync = 4;
  19.   hltdc.Init.VerticalSync = 4;
  20.   hltdc.Init.AccumulatedHBP = 12;
  21.   hltdc.Init.AccumulatedVBP = 12;
  22.   hltdc.Init.AccumulatedActiveW = 812;
  23.   hltdc.Init.AccumulatedActiveH = 492;
  24.   hltdc.Init.TotalWidth = 820;
  25.   hltdc.Init.TotalHeigh = 500;
  26.   hltdc.Init.Backcolor.Blue = 0;
  27.   hltdc.Init.Backcolor.Green = 0;
  28.   hltdc.Init.Backcolor.Red = 0;
  29.   if (HAL_LTDC_Init(&hltdc) != HAL_OK)
  30.   {
  31.     Error_Handler();
  32.   }
  33.   pLayerCfg.WindowX0 = 0;
  34.   pLayerCfg.WindowX1 = 156;
  35.   pLayerCfg.WindowY0 = 0;
  36.   pLayerCfg.WindowY1 = 129;
  37.   pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
  38.   pLayerCfg.Alpha = 255;
  39.   pLayerCfg.Alpha0 = 0;
  40.   pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
  41.   pLayerCfg.BlendingFactor2 = LTDC_BLENDING_FACTOR2_CA;
  42.   pLayerCfg.FBStartAdress = 0;
  43.   pLayerCfg.ImageWidth = 156;
  44.   pLayerCfg.ImageHeight = 129;
  45.   pLayerCfg.Backcolor.Blue = 255;
  46.   pLayerCfg.Backcolor.Green = 0;
  47.   pLayerCfg.Backcolor.Red = 0;
  48.   if (HAL_LTDC_ConfigLayer(&hltdc, &pLayerCfg, 0) != HAL_OK)
  49.   {
  50.     Error_Handler();
  51.   }
  52.   /* USER CODE BEGIN LTDC_Init 2 */
  53.     RIMC_MasterConfig_t RIMC_master = {0};
  54.     RIMC_master.MasterCID = RIF_CID_1;
  55.     RIMC_master.SecPriv = RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV;
  56.     HAL_RIF_RIMC_ConfigMasterAttributes(RIF_MASTER_INDEX_LTDC1 , &RIMC_master);

  57.     HAL_RIF_RISC_SetSlaveSecureAttributes(RIF_RISC_PERIPH_INDEX_LTDCL1 , RIF_ATTRIBUTE_SEC | RIF_ATTRIBUTE_PRIV);
  58.   /* USER CODE END LTDC_Init 2 */

  59. }
设置显示内容的图片,在主循环中每隔1s切换显示方向
9368367d28775384cc.png
具体显示效果如下:
2 00_00_00-00_00_30.gif
yangjiaxu 发表于 2025-4-9 14:54 | 显示全部楼层
看动图效果,刷新率还是蛮高的,不过图有点小,好像也是能让刷新率增加,后续楼主可以刷个全屏的玩玩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

293

主题

3837

帖子

81

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

293

主题

3837

帖子

81

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