野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 12463|回复: 1

首次成功驱动5寸屏幕,这里做点记录

[复制链接]
发表于 2017-4-15 15:36:44 | 显示全部楼层 |阅读模式
本帖最后由 喵爱小鱼鱼 于 2017-4-15 15:37 编辑

   我在配置好LTDC初始化结构体和层级初始化结构体以后,仿造着视频当中的样子利用函数直接给显存赋值,从而使液晶显示出纯色。
   代码如下:
  1. void ShowRed()
  2. {
  3. uint32_t i,j;
  4. uint32_t *p =(uint32_t *)0xD0000000;
  5. for(i=0;i<480;i++)
  6. for(j=0;j<800;j++)
  7. {
  8. *p=0x00FF00;
  9. p++;
  10. }
  11. }
复制代码
此函数操作的是底层,底层配置为RGB888像素格式,结果实验现象是:
最后找到原因是:不是没有按照规定的RDB888格式放入数据,而是采用的数据指针的问题。注意这里:uint32_t *p =(uint32_t *)0xD0000000;这指针是指向32位的变量,当指针p++时候便指向下一个32位的变量了,而RGB888数据是3字节(24位),于是每次指针加1便把数据给错开了,便得不到正确的显示效果。


解决办法:采用一个字节一个字节地写入颜色数据,或者将图像显示格式设为ARGB8888,便可直接使用上面代码中的赋值函数。
IMG_20170415_120134.jpg
回复

使用道具 举报

发表于 2017-4-15 16:32:42 | 显示全部楼层
不错不错,谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 09:45 , Processed in 0.029696 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表