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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python之路 socket、socket server

    python之路 socket、socket server

    2022年3月7日
    46
  • Eclipse使用(入门教程)

    Eclipse使用(入门教程)Eclipse使用入门教程 说起java的IDE,朗朗上口的无非是Eclipse了,假若能熟练Eclipse,对于我们编写java程序会起到事半功倍的效果,大大提高我们工作效率。因此本篇博文,笔者只是针对刚刚入门java的新手,以便他们能尽快掌握Eclipse的使用。 1.常用快捷键 这是使用工具的第一步,熟练使用快捷键对于我们编写程序会起到相当大帮助,所以这里笔者列出的快捷键建议大家必须都掌握…

    2022年6月19日
    36
  • mysql的服务已经停止,无法启动的解决办法

    mysql的服务已经停止,无法启动的解决办法(1)如果之前装过mysql的,把mysql的server卸载掉,连带MySQLServer5.7\data文件一起清干净(2)重新装好后,输入netstartmysql还是无法启动服务,这个时候,输入以下指令     mysqld–remove删除mysql服务     mysqld–install安装服务     mysqld

    2022年7月27日
    55
  • 优秀的程序员真的不写注释吗?

    优秀的程序员真的不写注释吗?我在很多地方看到这样一个观点,“请停止写注释,因为只有烂的代码才需要注释。”这个观点非常巧妙,它让我想起了孟子的一句话,“杨氏为我,是无君也;墨氏兼爱,是无父也。无父无君,是禽兽也。”动不动就骂别人是“禽兽”,我总觉得有点不妥,这很不符合孟子的浩然之气啊。有些大牛也有孟子这样的觉悟,如果有人要他给自己的代码加上注释,就好像是对他的一种侮辱:“我的代码写得这么优雅,你难道看不懂吗?注释是多余的!”我必须得承认,每个程序员都应该有一颗追求“优雅”的心,力争自己的代码更易阅读和理解——不只是针对机器,还有我

    2022年5月30日
    32
  • Class类的getClassLoader()方法

    Class类的getClassLoader()方法packageminglu;importjava.lang.reflect.InvocationTargetException;importjava.lang.reflect.Method;publicclassHelloWorld{ publicstaticvoidmain(String[]args)throwsInstantiationException,

    2022年5月11日
    56
  • 【转载】数据库软件架构设计些什么

    【转载】数据库软件架构设计些什么

    2021年11月20日
    35

发表回复

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

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