HLK-W801-LVGL8之横屏显示

  • 前言
    • 剖析正常竖屏显示
    • 剖析横屏显示
    • 显示效果

前言

前几天已经完成了关于W801移植LVGL,实现效果如下图所示:

图片是竖屏显示的,因为屏幕就是240x320 分辨率的,如果要横屏显示呢,即把屏幕看成是320x240的该如何配置。原来本想直接通过配置LVGL中的一些配置参数来达到这个目的,但实际操作起来有几个问题,LVGL中可以通过sw_rotate=1,rotated=LV_DISP_ROT_90来达到旋转目的,而实际效果确实软件实现带来的帧率低和CPU占有高,且图片旋转后也只能显示240*320效果,不能宽屏显示。所以这里在思考如何利用ILI9325里面的显示驱动功能来实现(即ILI9235驱动配置显示旋转90°)

剖析正常竖屏显示

如图所示,F1区域竖屏显示:

屏幕水平H :垂直V = 240 :320
屏幕原点坐标 O1(0,0)
在lvgl的接口函数flush需实现区域填充,具体详见 LCD驱动 这里说明基本步骤:
1)配置Entry Mode (R03h)
Bit3 AM,Bit4:5=ID0:1
AM=0,ID0:1=3

2) F1区域填充时Window Area((R50h, R51h, R52h, R53h) 和起始坐标(R20h,R21h)

  • 设置填充区域起始/终止坐标
    reg :
    0x50 set h1
    0x51 set h2
    0x52 set v1
    0x53 set v2
  • 设置起始坐标地址
    reg:
    0x20 set h1
    0x21 set v1

剖析横屏显示

如图所示,F1区域横屏显示:

横屏显示看作将屏幕顺时针旋转90°,但这时屏幕水平X:垂直Y= 320 :240
显示起点坐标变成O2(0,0)
在lvgl的接口函数flush需实现区域填充,
1)配置Entry Mode (R03h)
Bit3 AM,Bit4:5=ID0:1
AM=1,ID0:1=2 ,这里设置ORG=1,此时起点坐标由O1(0,0)变成O2(0,0)

2)F1区域填充时Window Area((R50h, R51h, R52h, R53h) 和起始坐标(R20h,R21h)
这里是关键点:因为填充区域的起点和终点仍然由屏幕原点坐标O1(0,0)决定,所以当调整ORG=1后,O2坐标系所填充的区域需要转换成O1坐标系
如图F1区域的起点和终点坐标O2(x1,y1),O2(x2,y2),
在配置window area时需配置为 O1(h1,v1),O1(h2,v2)
根据屏幕的坐标关系可以得出:

  • 设置填充区域起始/终止坐标
    reg :
    0x50 set h1=239-y2
    0x51 set h2=239-y1
    0x52 set v1=x1
    0x53 set v2=x2
  • 设置起始坐标地址
    reg:
    0x20 set x1
    0x21 set y1
    对于flush接口实现如下图:

显示效果


这里注意触摸的坐标也需要转换一些坐标:
O1(h3,v3) -> O2(x3=v3,y3=239-h3)

HLK-W801-LVGL8之横屏显示相关推荐

  1. 华为8x计算机横屏怎么设置,荣耀8x怎么设置横屏显示 两种操作方法详细介绍

    荣耀8x是一部主打拍照体验的手机,软硬件非常具有性价比,虽然定位中端机但是在一些功能上也是十分丰富的,荣耀8x的横屏可以随意切换,下面为大家带来具体的操作方法,有需要的小伙伴可以参考. 方法一:横屏显 ...

  2. [html] 移动端如何让页面强制横屏显示?

    [html] 移动端如何让页面强制横屏显示? 说个想法 不一定能实现web端的话 通过判断页面屏幕宽度(这个得开陀螺仪权限吧) 然后经行div旋转 个人简介 我是歌谣,欢迎和大家一起交流前后端知识.放 ...

  3. android 悬浮窗口禁止横屏显示,悬浮窗强制设置屏幕方向|App开发交流区|研发交流|雨滴科技技术论坛 - Powered by Discuz!...

    最近在做平板上的一个程序,需要配合中通的app来控制扫描与分拣机的转动.然后中通的程序在平板上运行有一个问题, 就是app里设置了强制竖屏,不能跟随系统旋转应用屏幕方向,然后把系统里的屏幕方向写死,虽 ...

  4. android 11.0 开机动画横屏显示

    目录 1.概述 2.开机动画横屏显示的核心代码部分 3.开机动画横屏显示的核心代码部分分析以及实现功能

  5. 移动端,禁止横屏显示模板,干货!!!

    哈哈!好久没回来了!最近都比较忙.在完善集团官网时,考虑到在不同分辨率手机上,横屏也会有出入,如是想着禁用横屏显示!废话不多说 看代码: ----------------------------来了, ...

  6. 实现手机端页面自动横屏显示

    如题,在做手机端页面时会遇到需要固定横屏显示的页面,很多人的做法是直接给一个横屏提醒,我也不例外.不过大佬给了我一个新的思路,让页面不管是横着拿着还是竖着拿着都是横屏显示. 思路:监听页面的orien ...

  7. Android 强制第三方应用横屏显示

    第三方应用横屏显示 基于RK3399,Android11 屏幕方向旋转 当系统状态改变,需要重新更新方向时,就会调用 \frameworks\base\services\core\java\com\a ...

  8. 抖音开发者工具配置抖音小游戏为横屏显示的方法

    本篇文章主要讲解,使用抖音开发者工具配置抖音小游戏为横屏显示的方法 作者:任聪聪 日期:2023年2月3日 问题现象 横屏的游戏发布到抖音开发者工具中发现是竖屏显示 实际原因 game.json的配置 ...

  9. 高德地图 transform: rotate(90deg)横屏显示后样式及事件问题

    做大屏数据报表,底图用的动态的高德地图,后客户又要求做移动端的大屏,要求用户一进入页面,就是横屏显示.即rotate(90deg)显示页面内容. 但是发现旋转后高德地图的样式会有问题.就是创建的mar ...

最新文章

  1. 【BZOJ1185】【HNOI2007】最小矩形覆盖(凸包+旋转卡壳)
  2. 【WebRTC---进阶篇】(一)服务器基础编程
  3. Flask开发微电影网站(十)
  4. 帆软按钮控件变查询_如何设置finereport按钮控件的可用时间
  5. duri oracle 连接字符串_C#连接Oracle数据库的连接字符串
  6. ecshop mysql 标题表_ecshop商品分类列表页如何自定义title标题
  7. springcloud之eureka集群搭建
  8. Python设计模式:抽象工厂模式
  9. 界面控件DotNetBar for WinForms使用教程:highlight组件使用教程
  10. SSM项目实战之博客系统
  11. html5写自我介绍,一分钟标签式自我介绍4篇
  12. 解决memory leak问题
  13. 龙果支付 mysql_龙果支付系统怎么搭建与部署?
  14. 【软考】2020下半年软件设计师 易错知识点(1)
  15. 取消RadioButton前面小圆圈的方法
  16. SpringBoot SpringBoot 开发实用篇 5 整合第三方技术 5.21 SpringBoot 整合 ActiveMQ
  17. cat命令 – 在终端设备上显示文件内容
  18. Java编程思想-并发
  19. python分割字符串中文_python 分割中文英文混合字符串的正确方法
  20. 分页-如何实现分页-实用有简单的分页代码及步骤分享

热门文章

  1. 使用MPU6050在STM32F103C8T6中的硬件I2C数据传输
  2. git报错error: index uses extension, fatal: index file corrupt
  3. 若问杭州何处好,此中听得野莺啼——关于杭州
  4. 学习信奥要不要先学python
  5. 数据类型与堆栈内存练习数据类型检测
  6. PlatoFarm进展不断,接连上线正式版以及推出超级原始人NFT
  7. 干货:一文读懂数据仓库设计方案
  8. 六年安卓开发的技术回顾和展望
  9. 世界杯快结束了,VAR的故事才刚刚开始
  10. 服装企业SPA经营模式解析