打印
[STM32N6]

STM32N6570-DK】+ 利用LTDC驱动LCD显示

[复制链接]
27|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

本次来试试STM32N6的LTDC外设,通过LTDC实现LCD屏显示。

首先打开STM32CubeMX,使用开发板模式新建工程,配置LTDC外设。配置如下:

先是屏幕驱动颜色和分辨率。使用RGB565颜色模式,屏幕分辨率为800*480.

image.png

然后是LTDC层显示控制。这里使用2个显示层,一个显示范围100*100,另一个显示范围50**200。

image.png

image.png

再就是RIF模块要使能。也可以在ltdc初始化后面加上如下代码:

  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);

image.png

还必须打开HAL_RIF_MODULE_ENABLED定义使能。

image.png

或者另一个办法就是直接配置RIF模块。这样就不用添加额外代码。如下:

image.png

下面接着定义一个buffer用于显存。

uint32_t lcd_buffer[100*100*2/4];
void lcd_buff_set(uint16_t color)
{
    uint16_t i;
    uint16_t *ptr;
    ptr = (uint16_t *) lcd_buffer;
    for(i=0;i<100*100;i++)
    {
        ptr[i] = color;
    }
}

在main函数中使用如下:

image.png

然后编译DEBUG调试就可以看到颜色方块变化了。

n6.gif upload 附件:n6_lcd.zip

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

126

主题

4763

帖子

28

粉丝