ST7789V+初始化代码调

MyfirstblogonCSDN本文简单写一下本次调屏经过遇到的问题和解决方法,主要是怕以后遇到同样问题的时候又忘记了~1、屏分辨率是240×320,接口是16bitparalledatabusfor8080seriescpu,就是16位并口再加WR,RD,CS,RS接口,屏的复位可以采用RC上电复位电路。2、cpu这边输出的信号是320×240的,这里没写错,输

大家好,又见面了,我是你们的朋友全栈君。

My first blog on CSDN

本文简单写一下本次调屏经过遇到的问题和解决方法,主要是怕以后遇到同样问题的时候又忘记了~

1、屏分辨率是240×320,接口是16bit paralle data bus for 8080 seriescpu,就是16位并口再加WR,RD,CS,RS接口,屏的复位可以采用RC上电复位电路。

2、cpu这边输出的信号是320×240的,这里没写错,输出的数据是横屏显示的,可屏幕看起来是竖屏的,不过不用担心,屏控制器这边是可设置方向的爱怎么显示就怎么显示这就是“cpu屏”的好处。

点这种类型的屏主要的工作就是初始化代码了,一般屏供应商都会提供一份参考的稍微修改一下就可以正常显示了。这次拿到的初始化代码据说是可以正常显示的,实际显示效果如何不得而知,需要怎样格式的数据不得而知,一般情况下是先使用参考的初始化点一下看看效果再做打算。

点出来的效果发现是竖着显示的,并且画面也不对。于是想到先把X,Y交换过来,看了下ST7789V的datasheet有个寄存器需要设置一下,看8.12 Address Control
章节内容需要设置一下36h寄存器的MV=1 MX=0 MY=1这几位

9.1.28 MADCTL (36h): Memory Data Access Control
lcd_send_cmd(0,0×36); 

lcd_send_cmd(1,0xa0);

MV=1;//交换XY

MY=1;//Y镜像

最终出来的效果是画面横着出来了但还是显示不正确,整个显示画面分成了3个区域,这下想到应该是行、列地址范围没设对,默认行是Y=320列是X=240,现在行列已经反过来了X=320,Y=240所以需要设置一下行列的地址范围,查看datasheet得知有几个相关寄存器需要设置分别是

9.1.20 CASET (2Ah): Column Address Set

lcd_send_cmd(0,0x2a); 
lcd_send_cmd(1,0×00); //列起始地址
lcd_send_cmd(1,0×00); 
lcd_send_cmd(1,0×01); //列结束地址
lcd_send_cmd(1,0x3f); //0x13f=319


9.1.21 RASET (2Bh): Row Address Set

lcd_send_cmd(0,0x2b); 
lcd_send_cmd(1,0×00); //行起始地址
lcd_send_cmd(1,0×00); 
lcd_send_cmd(1,0×00); //行结束地址
lcd_send_cmd(1,0xef); //239

设置完以后就可以正常显示了~

20180111:最近又在另一个平台上调这个屏有了新的发现,所谓的行列起始结束地址应该是拿来存放数据到ram的时候用的。驱动IC会把接收到的数据按照行列来存储最终显示出来。

以这里设置为横屏(320×240)为例,cpu的FrameBuffer(FB)给出来的数据就应该以320×240组织的,这样给到屏这边的时候屏才能满屏显示。假如FB给出来的数据是240×320这种组织结构的,屏这边只会收到240×240的数据而且会把240×240的数据按照320×240的方式写到ram中,实际ram中只能收到320×180(240×240)个像素的数据,从而显示上表示出来就是一部分图片。因为fb的x只输出了240列240行。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/128367.html原文链接:https://javaforall.net

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)

    卷积神经网络CNN(1)——图像卷积与反卷积(后卷积,转置卷积)1.前言  传统的CNN网络只能给出图像的LABLE,但是在很多情况下需要对识别的物体进行分割实现endtoend,然后FCN出现了,给物体分割提供了一个非常重要的解决思路,其核心就是卷积与反卷积,所以这里就详细解释卷积与反卷积。  对于1维的卷积,公式(离散)与计算过程(连续)如下,要记住的是其中一个函数(原函数或者卷积函数)在卷积前要翻转180度图1  对…

    2022年6月21日
    32
  • 杀人博客日记

    杀人博客日记玩杀人的一片日记,是被迫写的,由于毕业论文后就没写过东西,所以还请各位看官海涵,谢谢啦链接:http://hunter.time.blog.163.com/blog/static/91884193200881065612512/…

    2022年4月30日
    59
  • EntityFramework经典的left join语法

    EntityFramework经典的left join语法

    2022年1月26日
    50
  • FVWM简明使用指南

    FVWM简明使用指南http://minus273.eu/mirrors/2001315450/fvwm_frame.html简明使用指南FvwmisawindowmanagerforX11.Itisdesignedtominimizememoryconsumption,providea3Dlooktowindowframes,andavirtual

    2022年10月4日
    4
  • c++虚函数详解(你肯定懂了)

    c++虚函数详解(你肯定懂了)转自:c++虚函数 大牛的文章,就是通俗易懂,言简意赅。前言C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议…

    2022年7月26日
    11
  • docker(11)Dockerfile 中的COPY与ADD 命令「建议收藏」

    docker(11)Dockerfile 中的COPY与ADD 命令「建议收藏」前言Dockerfile中提供了两个非常相似的命令COPY和ADD,本文尝试解释这两个命令的基本功能,以及其异同点,然后总结其各自适合的应用场景。Build上下文的概念在使用dock

    2022年7月29日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号