液晶屏的时序问题?
每个液晶屏的时序都不一样,但总体上是类似的。如下图:

  

VDEN:    数据使能信号。
HSYNC:     每一行扫描的起始点, 在扫描过程中, 不会管上一行扫描有没有结束, 当出现这一个信号,即开始新一行的扫描.
VSYNC:      每一场扫描的起始点, 这与HSYNC相似的.
BACK PROCH:     因为有不同tft屏和不同扫描硬件, 并且HSYNC和VSYNC对于时序的约束力有限, 所以会加入一些容错的时间, 因此行扫描和场扫描都会有BACK PROCH: 和FRONT PROCH: , 并且会在HSYNC,VSYNC出现之后, 和正常分辨率扫描之后都将容错时序, 也就是在正常扫描的前后都加入容错时间, BACK PROCH: 虽然从字面上理解是后容错, 但通常会放在正常描述之前, 当然这还要看具体TFT屏的规格书.
FRONT PROCH:    也就是放在正常描述之后的容错时间. 同上.
CLK:     也就是正常扫描的时钟, 一个上升沿只会扫描一个pixel.

从下面这个示意图可以比较直观的看出:

  

注意:有些液晶屏给的参数单位可能不一样,需要自己计算。

  

各参数值确定方法如下:

VBPD:确定帧同步信号和帧数据传输前的一段延迟时间,是帧数据传输前延迟时间和行同步时钟间隔宽度的比值,如图,VBPD=t3/t6=1.02 mS/31.77μs=32。

VFPD:确定帧数据传输完成后到下一帧同步信号到来的一段延迟时间,是帧数据传输后延迟时间和行同步时钟间隔宽度的比值,如图,VFPD=t5/t6=0.35 ms/31.77μs=11。

VSPW:确定帧同步时钟脉冲宽度,是帧同步信号时钟宽度和行同步时钟间隔宽度的比值。如图,VSPW=t2/t6=0.06 ms/31.77μs=2。

HBPD:确定行同步信号和行数据传输前的一段延迟时间,描述行数据传输前延迟时间内VCLK脉冲个数,如图,VBPD=t7×VCLK=1.89 μs×25MHz=47。

HFPD:确定行数据传输完成后到下一行同步信号到来的一段延迟时间,描述行数据传输后延迟时间内VCLK脉冲个数,如图,HFPD=t9×VCLK=0.94 μs×25 MHz=24。

HSPW:确定行同步时钟脉冲宽度。描述行同步脉冲宽度时间内VCLK脉冲个数,如图,HSPW=3.77μs×25 MHz=94。

LTDC的使用问题?
可参考官方例程的配置,需要注意的是,它只是一个LCD控制器,需要定义缓存的地址。可以设置在flash里,但是不便于操作,一般还是建议设置外部SDRAM里。可参考下面这个PDF文档。

LTDC中DMA2D的使用问题?
429中LTDC的2D加速功能还比较简单,只有以下4种模式
    DMA2D功能:  
       DMA2D_M2M   从flash拷贝至显存
       DMA2D_M2M_PFC 从flash拷贝至显存,并可以进行颜色的格式转换,替换/不更改/混合
       DMA2D_M2M_BLEND 从flash拷贝至显存,并先进行前景与后景色混合
       DMA2D_R2M 拷贝固定颜色至显存
使用方式:

uint32_t DMA2D_OutAdd;
uint32_t DMA2D_InAdd;
void DMA2D_M2M_Config(uint16_t Xpos, uint16_t Ypos, uint16_t Width, uint16_t Height)
{
DMA2D_InitTypeDef DMA2D_InitStruct;
DMA2D_FG_InitTypeDef DMA2D_FG_InitStruct; /* Enable the DMA2D Clock */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_DMA2D, ENABLE); /* DMA2D configuration */
DMA2D_DeInit(); /* Transfer mode */
DMA2D_InitStruct.DMA2D_Mode = DMA2D_M2M; /* Color mode */
DMA2D_InitStruct.DMA2D_CMode = DMA2D_RGB565; DMA2D_OutAdd = CurrentFrameBuffer + *(LCD_PIXEL_WIDTH*Ypos + Xpos); /* Output Address */
DMA2D_InitStruct.DMA2D_OutputMemoryAdd = DMA2D_OutAdd; /* Number of lines : height */
DMA2D_InitStruct.DMA2D_NumberOfLine = Height; /* Number of pixel per line : width */
DMA2D_InitStruct.DMA2D_PixelPerLine = Width; /* Initialize the alpha and RGB values */
DMA2D_InitStruct.DMA2D_OutputGreen = ;
DMA2D_InitStruct.DMA2D_OutputBlue = ;
DMA2D_InitStruct.DMA2D_OutputRed = ;
DMA2D_InitStruct.DMA2D_OutputAlpha = ; /* Initialize the output offset */
DMA2D_InitStruct.DMA2D_OutputOffset = (LCD_PIXEL_WIDTH - Width); /* Initialize DMA2D */
DMA2D_Init(&DMA2D_InitStruct); /* Configure default values for foreground */
DMA2D_FG_StructInit(&DMA2D_FG_InitStruct); /* Configure DMA2D foreground color mode */
DMA2D_FG_InitStruct.DMA2D_FGCM = DMA2D_RGB565; /* Configure Input Address */
DMA2D_FG_InitStruct.DMA2D_FGMA = CurrentFrameBuffer+BUFFER_OFFSET; /* Initialize foreground */
DMA2D_FGConfig(&DMA2D_FG_InitStruct); /* Start Transfer */
DMA2D_StartTransfer(); /* Wait for CTC Flag activation */
while(DMA2D_GetFlagStatus(DMA2D_FLAG_TC) == RESET)
{
}
}

最新文章

  1. SYSTick 定时器
  2. zh-Hans vs.net 通过 管理nuget程序包下载简体中文语言包 zh-cn
  3. request实现页面包含
  4. 【转】c++中引用的全方位解读
  5. 【重走Android之路】【Java面向对象基础(一)】数据类型与运算符
  6. IOS UIWebView截获html并修改便签内容,宽度自适应
  7. poj 1054 The Troublesome Frog (暴力搜索 + 剪枝优化)
  8. Lucene学习笔记: 五,Lucene搜索过程解析
  9. Oracle超出最大连接数问题及解决
  10. Visual Studio 2010利用libxl读写excel表格数据
  11. PHP文件上传大小限制问题
  12. docker组件介绍
  13. debian proftpd安装
  14. HTML添加图像和超链接
  15. nisght heap increase
  16. 学习笔记:ECharts
  17. SQL语句:Mac 下 处理myql 不能远程登录和本地登录问题
  18. Xamarin.Android之SQLite.NET ORM
  19. Flink安装、高可用性
  20. 【hive】求日期是星期几

热门文章

  1. kubernetes 应用快速入门
  2. 100行代码打造属于自己的代理ip池
  3. Linux下安装php 扩展fileinfo
  4. <转> Android LayoutInflater详解
  5. Android和kali的互操作性
  6. xlsxwriter写入Excel文件
  7. IAR 为 STM32新建工程模板(最详细)
  8. 用js刷剑指offer(字符串的排列)
  9. linux网络编程之简单的线程池实现
  10. Promise原理实现