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


相关推荐

  • php获取客户端IP和服务器端IP[通俗易懂]

    php获取客户端IP和服务器端IP[通俗易懂]1.php获取客户端IP在PHP获取客户端IP时,常使用$_SERVER[“REMOTE_ADDR”]。但如果客户端是使用代理服务器来访问,那取到的是代理服务器的IP地址,而不是真正的客户端IP地址。要想透过代理服务器取得客户端的真实IP地址,就要使用$_SERVER[“HTTP_X_FORWARDED_FOR”]来读取。但只有客户端使用“透明代理”的情况下,$_S

    2025年6月24日
    2
  • vue页面刷新方法_vue返回上一页怎么实时刷新

    vue页面刷新方法_vue返回上一页怎么实时刷新一、通过js原始方法刷新<template><div><divclass=”header”><button@click=”update()”>刷新页面</button></div></div></template><script>exportdefault{data(){return{}},methods

    2022年10月11日
    2
  • Ubuntu系统下安装SQLite Browser教程[通俗易懂]

    Ubuntu系统下安装SQLite Browser教程[通俗易懂]一、参考资料InstallSQLiteandSQLiteBrowseronUbuntu18.04LTSLinux下安装可视化数据库浏览器DBBrowserforSQLite3.37ubuntu安装sqlite3二、相关介绍SQLiteDBBrowser是一个强大的与SQLite数据库交互的工具。它被开发人员和最终用户使用。SQLiteDB浏览器不是为SQLite设计的,也不需要了解SQL。它只是一个帮助用户使用SQLite数据库的可视化工具。

    2022年9月9日
    0
  • python超链接格式_Openpyxl中的超链接样式「建议收藏」

    python超链接格式_Openpyxl中的超链接样式「建议收藏」4个答案:答案0:(得分:1)importopenpyxlfromopenpyxl.stylesimportFont,Color,colors#…#alternative1:sethyperlinkpropertytocelldeflink_1(cell,link,display=None):cell.hyperlink=linkcell.font=…

    2022年7月19日
    113
  • JAVA——数组截取——调用库中方法

    JAVA——数组截取——调用库中方法1,使用Java类库中的方法System.arraycopy2,使用Java类库中的方法java.util.Arrays.copyOf3,重写myCopy(一)使用.arraycopy方法使用方法:System.arraycopy(源数组名称,源数组开始点,目标数组名称,目标数组开始点,拷贝长度);说明:将arr1数组中的一部分替换成arr2数组中的一部分可以从任意位置开始截取…

    2022年6月9日
    166
  • 阿里云搭建svn服务器_如何搭建家用云服务器

    阿里云搭建svn服务器_如何搭建家用云服务器最近买了华为云服务器(ubuntuserver14.04),准备玩玩云,本文就是记录一下如何在华为云上搭建SVN服务器,跟阿里云上搭建SVN服务器还是有点区别的。第一次登录或第一次用SSH远程登录,需要跟客服要文档。华为云的安全策略,第一次使用apache2服务,需要看如何修改安全策略,增加80端口的公网访问,80端口是Apache2服务的默认端口。修改安全策略帮助帮助(1)安装软件

    2022年10月17日
    3

发表回复

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

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