干货:LTDC单层图像显示案例分析

lcd-tft(液晶显示器,薄膜晶体管)显示器控制器提供并行数字 rgb (红色、绿色、蓝色)以及水平同步、垂直同步、像素时钟和数据使能信号,这些信号直接输出到不同 lcd和 tft面板的接口。
主要功能:
24 位 rgb并行像素输出;每像素 8 位 (rgb888)。
2个带有专用 fifo的显示层(fifo 深度 64x32位)。
查色表 (clut) ,每层高达 256 种颜色(256x24位)。
支持高达 xga (1024x768) 的分辨率。
可针对不同显示面板编程时序。
可编程背景色。
可编程 hsync、vsync 和数据使能信号的极性。
每层有多达 8 个输入颜色格式可供选择。
1、argb8888
2、rgb888
3、rgb565
4、argb1555
5、argb4444
6、l8(8位 luminance或 clut )
7、al44(4位 alpha + 4位 luminance )
8、al88(8位 alpha + 8位 luminance )
每通道的低位采用伪随机抖动输出。红色、绿色、蓝色的抖动宽度为 2 位。
使用 alpha 值(每像素或常数)在两层之间灵活混合。
色键(透明颜色) 。
可编程窗口位置和大小 。
支持薄膜晶体管 (tft) 彩色显示器 。
ahb 主接口支持 16个字的突发。
高达 4 个可编程中断事件。
时钟:
ahb 时钟域 (hclk) :用于将数据从存储器传输到 fifo层apb2时钟域 (pclk2):用于配置寄存器像素时钟域 (lcd_clk) :用于生成 lcd-tft接口信号。lcd_clk输出应按照面板要求配置。lcd_clk通过 pllsai进行配置(见 rcc部分)。
时钟配置程序:
periphclkinitstruct.periphclockselection = rcc_periphclk_ltdc; periphclkinitstruct.pllsai.pllsain = 192; periphclkinitstruct.pllsai.pllsair = 5; periphclkinitstruct.pllsaidivr = rcc_pllsaidivr_4; hal_rccex_periphclkconfig(&periphclkinitstruct); 引脚
lcd-tft最多可以使用28个引脚。
液晶时序配置
hltdc_f.init.horizontalsync = (rk043fn48h_hsync - 1); hltdc_f.init.verticalsync = (rk043fn48h_vsync - 1); hltdc_f.init.accumulatedhbp = (rk043fn48h_hsync + rk043fn48h_hbp - 1); hltdc_f.init.accumulatedvbp = (rk043fn48h_vsync + rk043fn48h_vbp - 1); hltdc_f.init.accumulatedactiveh = (rk043fn48h_height + rk043fn48h_vsync + rk043fn48h_vbp - 1); hltdc_f.init.accumulatedactivew = (rk043fn48h_width + rk043fn48h_hsync + rk043fn48h_hbp - 1); hltdc_f.init.totalheigh = (rk043fn48h_height + rk043fn48h_vsync + rk043fn48h_vbp + rk043fn48h_vfp - 1); hltdc_f.init.totalwidth = (rk043fn48h_width + rk043fn48h_hsync + rk043fn48h_hbp + rk043fn48h_hfp - 1);背景色配置:
hltdc_f.init.backcolor.blue = 0; hltdc_f.init.backcolor.green = 0; hltdc_f.init.backcolor.red = 0;这里使用的hltdc_f 变量是一个ltdc_handletypedef类型的结构体。
窗口配置,这里只显示了一个图层。
配置开始、结束的像素位置坐标,也就是整个屏幕。
playercfg.windowx0 = 0; playercfg.windowx1 = 480; playercfg.windowy0 = 0; playercfg.windowy1 = 272;像素格式配置成为rgb565。
playercfg.pixelformat = ltdc_pixel_format_rgb565;显示图像的起始地址:
playercfg.fbstartadress = (uint32_t)&rgb565_480x272;alpha配置为255.
playercfg.alpha = 255;最后通过hal_ltdc_configlayer函数初始化tft与配置图层。
hal_ltdc_configlayer(&hltdc_f, &playercfg, 1);
显示结果。

为什么今天必须关注5G-Advanced?
在四轮自动驾驶上屡屡受挫的Uber 两轮自动驾驶上也未必会顺利
直面各种复杂场景挑战的精密光电专家
性价比手机推荐:一加5、华为荣耀9、小米6、小米MAX2、华为荣耀V9、iPhone6S,值得购买
小米5splus怎么样,小米5sPlus测评!小米5splus美的不像话!
干货:LTDC单层图像显示案例分析
香蕉派BPI-M2 Zero单板计算机采用全志H3(可选H2+/H5)芯片设计,板载512M RAM内存
基于DS18B20和单片机实现工业空调智能控制器的应用方案
采用ST178制作的反射式红外传感器电路
关于GD32 MCU的性能分析和应用介绍
嵌入式AI应用,为消费者提供更多新型的AI应用程序
ARIZEAI,第一个进入市场的ML观测平台
基于TSM320LF2407A型DSP芯片实现电能质量监控系统的应用方案
什么是基频晶振,什么又是泛音晶振?
中国集成电路的设计制造封装市场行情分析
深圳市监管局发布“中金公司关于深圳市优必选科技股份有限公司辅导备案信息公示”
润和软件HopeStage与360终端安全管理、防护系统完成产品兼容性互认证
科锐助力全国最大城市智能LED道路照明系统
深谙数字化奥义,华为云耀云服务器 L 实例助企业行稳致远.
农业物联网的问题