STM32CubeMx配置LTDC
设置Display Type,根据电路原理图和显示屏的特性可知,电路图中R0-R7,G0-G7,B0-B7,一共是3*8=24bit线,查看显示屏的数据手册可知显示屏为RGB方式的屏幕,所以此处选择RGB888(24bits)。Horizontal Synchronization Width:此参数为水平同步宽度,单位为时钟周期的数目,此参数实际上对应HSW参数,查看显示屏的数据手册可知HSW的参
1.以STM32H743IIT6为例
打开STM32CubeMx软件,选择Multimedia中的LTDC选项,点击即可打开LTDC Mode and Configuration。
2.配置LTDC Mode
设置Display Type,根据电路原理图和显示屏的特性可知,电路图中R0-R7,G0-G7,B0-B7,一共是3*8=24bit线,查看显示屏的数据手册可知显示屏为RGB方式的屏幕,所以此处选择RGB888(24bits)。
3.配置LTDC Configuration
Horizontal Synchronization Width:此参数为水平同步宽度,单位为时钟周期的数目,此参数实际上对应HSW参数,查看显示屏的数据手册可知HSW的参数范围为1–40,单位为时钟周期,所以此处设置为3。
Horizontal Back Porch:此参数对应HBP,单位为时钟周期的数目,查看显示屏的数据手册可知HBP为46,所以此处设置为46。
Active Width:此参数对应水平方向的显示区域,查看显示屏的数据手册可知Horizontal Display Area的值为800,所以此处设置为800。
Horizontal Front Porch:此参数对应HFP,查看显示屏的数据手册可知范围为16-354,典型值为210,这里选择典型值210,所以此处设置为210。
HSync Width:软件自动计算结果。
Accumulated Horizontal Back Porch Width:软件自动计算结果。
Accmulated Active Width:软件自动计算结果。
Total Width:软件自动计算结果
Vertical Synchronization Height :垂直同步高度,单位为时钟周期的数目,对应VSW,单位为时钟周期,查看显示屏的数据手册可知范围为1-20,此处设置为3。
Vertical Back Porch:此参数对应VBP,查看显示屏的数据手册可知值为23,所以此处设置为23。
Active Height:此参数为垂直方向显示区域的大小,查看显示屏的数据手册可知值为480,所以此处设置为480。
Vertical Front Porch:此参数为VFP,查看显示屏的数据手册可知范围为7-147,典型值为22,这里取典型值,所以此处设置为22。
VSync Height:软件自动计算。
Accumulated Vertical Back Porch Height:软件自动计算。
Accumulated Active Height :软件自动计算。
Total Height:软件自动计算。
Horizontal Synchronization Polarity:此参数为水平同步的极性,根据显示屏的特性来设置, LCD 一般设置为 0 即可,表示低电平有效。所以此处选择Active Low。
Vertical Synchronization Polarity:此参数为垂直同步的极性,根据显示屏的特性来设置, LCD 一般设置为 0 即可,表示低电平有效。所以此处选择Active Low。
Data Enable Polarity:此参数为数据使能极性。即控制 DE 信号的极性,根据显示屏的特性来设置, LCD 一般设置为 0 即可,表示低电平有效。所以此处选择Active Low。
Pixel Clock Polarity:此参数为像素时钟的极性,一般有两种方式,第一种是同输入的像素时钟,第二种是反向的输入的像素时钟,根据显示屏的特性来设置,这里此处选择Normal Input。
Layer Default Color:此参数为层默认的颜色,此处设置为全0,代表黑色,黑色的色码即为:0x000000。
Red,Green,Blue:全部设置为0,表示黑色
4.配置Layer Settings
Number of Layers
Number of Layers:设置LTDC有几层,由于STM32 中的LTDC分为背景层和前景层,所以此处设置为两层 2layers。
Window Position
Layer 0 - Window Horizontal Start:此参数为窗口起始位置X坐标,起始坐标为0。所以此处设置为0。
Layer 0 - Window Horizontal Stop:此参数为窗口结束位置X坐标,查看显示屏的数据手册可知,显示屏水平方面的区域最长为800,所以此处设置为800。
Layer 0 - Window Vertical Start:此参数为窗口起始位置Y坐标,起始坐标为0,所以此处设置为0。
Layer 0 - Window Vertical Stop:此参数为窗口结束位置Y坐标,查看显示屏的数据手册可知,垂直方面的最长为480,所以此处设置为480
Layer 1 - Window Horizontal Start:参数设置和Layer 0一样,0
Layer 1 - Window Horizontal Stop:参数设置和Layer 0一样,800
Layer 1 - Window Vertical Start:参数设置和Layer 0一样,0
Layer 1 - Window Vertical Stop:参数设置和Layer 0一样,480
Pixel Parameters
Layer 0 - Pixel Format:此参数为像素格式,由于显示屏是RGB888,即R,G,B分别为8根线,所以此处设置为RGB888。
Layer 1 - Pixel Format:此参数为像素格式,由于层1为前景层,需要透明,所以此处需要设置为ARGB8888,其中A代表透明。
Blending
Layer 0 - Alpha constant for blending:此参数为层0混合的Alpha(透明度)常量,范围(0-255),0为完全透明。
Layer 0 - Blending Factor1:此参数为层0混合系数1,此处设置为Alpha constant x Pixel Alpha即可。
Layer 0 - Blending Factor2:此参数为层0混合系数2,此处设置为Alpha constant x Pixel Alpha即可。
Layer 1 - Alpha constant for blending:此参数为层1混合的Alpha(透明度)常量,范围(0-255),0为完全透明。
Layer 1 - Blending Factor1:此参数为层1混合系数1,此处设置为Alpha constant x Pixel Alpha即可。
Layer 1 - Blending Factor2:此参数为层1混合系数2,此处设置为Alpha constant x Pixel Alpha即可。
Layer Default Color
Layer 0 - Alpha:此参数为层0的默认透明度常量,范围(0-255),0为完全透明,对应参数Alpha0。
Layer 0 - Blue:层背景颜色的蓝色分量
Layer 0 - Green:层背景颜色的绿色分量
Layer 0 - Red:层背景颜色的红色分量
Layer 1 - Alpha:此参数为层0的默认透明度常量,范围(0-255),0为完全透明,对应参数Alpha0。
Layer 1 - Blue:层背景颜色的蓝色分量
Layer 1 - Green:层背景颜色的绿色分量
Layer 1 - Red:层背景颜色的红色分量
Frame Buffer
Layer 0 - Color Frame Buffer Start Adress:此参数为层0的显存首地址
Layer 0 - Color Frame Buffer Line Length(Image Width):此参数为层0的图像宽度,查看显示屏的数据手册可知,水平方面的最长为800,所以此处设置为800的宽度
Layer 0 - Color Frame Buffer Number of Lines(Image Height):此参数为层0的图像高度,查看显示屏的数据手册可知,垂直方面的最长为480,所以此处设置为480的高度
Layer 1 - Color Frame Buffer Start Adress:此参数为层1的显存首地址,此参数的首地址需要根据层0的所占用的字节来计算,由于层0设置为RGB888,则层0占用的字节为8004803=1152000,若层0设置为ARGB8888,则层0占用的字节为8004804=1536000。层1的首地址=层0的首地址+层0占用的字节数。
Layer 1 - Color Frame Buffer Line Length(Image Width):此参数为层1的图像宽度,查看显示屏的数据手册可知,水平方面的最长为800,所以此处设置为800的宽度
Layer 1 - Color Frame Buffer Number of Lines(Image Height):此参数为层1的图像高度,查看显示屏的数据手册可知,垂直方面的最长为480,所以此处设置为480的高度
5.配置NVIC Settings
勾选LTDC global interrupt,Enabled中断
6.配置GPIO Settings
根据电路原理图配置GPIO口,管脚配置为上拉并且高速模式
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)