LCD-TFT控制总结

本文总结了作者在将LCD代码从野火移植到CubeMX时遇到的显示问题及其解决过程,主要涉及LTDC、DMA2D和FMC等外设。通过分析SDRAM中的数据,发现问题出在LL_FillBuffer函数,修改Dma2d_Handler为hdma2d后程序恢复正常。此外,简要介绍了LCD所用到的外设功能:LTDC负责液晶控制器,DMA2D用于图像搬运和格式转换,FMC则用于操作SDRAM。
摘要由CSDN通过智能技术生成

最近学到LCD了,但是在将野火的代码转移到CubeMX时却遇到了大麻烦,屏幕一直是花的,只有一次正常显示一下下,但是过一段时间就又没了,好几天的时间都找不到问题。

 

说说如何找到问题的

找到问题的方法是我昨天才想到的,前些天就像无头苍蝇一样到处乱窜,花了很多时间,但是没有用对方法,都是无用功。

后来想到,LCD使用SDRAM最为显存,那么只需要读取SDRAM中的数据就知道为什么显示会有问题了。

通过访问SDRAM中的显存的地址,就可以直接得到SDRAM中的数据。

首先测试清屏函数,读取SDRAM中的数据在清屏前和清屏后的数据有什么不同。

 1  printf("%s\n","-----D000 after clear-----");
 2  uint32_t i;
 3  uint8_t ubReaddata_8b=0;
 4  for (i=0; i<200; i++) {
 5    ubReaddata_8b = *(__IO uint8_t*)(0xD0000000 + i);
 6    printf("%x ",ubReaddata_8b);
 7  }
 8
 9  printf("\n%s\n","-----D000 after clear-----");
10
11  printf("%s\n","-----D020 after clear-----");
12
13  for (i=0; i<200; i++) {
14    ubReaddata_8b = *(__IO uint8_t*)(0xD0200000 + i);
15    printf("%x ",ubR
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值