LVGL8,更改屏幕默认显示方向

本文介绍了如何使用LVGL8库在1.8寸128x160分辨率的ST7735S驱动屏上改变默认显示方向。方法包括软件旋转和硬件配置。通过设置`sw_rotate`和`rotated`属性实现软件旋转,或修改0x36h寄存器为0x60来实现硬件屏幕翻转。注意,配置后可能需要交换屏幕长宽定义以达到顺时针旋转90度的效果。最后,重新编译下载将使屏幕正常显示。

LVGL8,更改屏幕默认显示方向

示例屏幕1.8寸,128x160,驱动st7735s

默认显示方向:竖直

最终效果,屏幕顺时针旋转90度

 

 

方法一:软件旋转

lv_disp_drv_t disp_drv;
lv_disp_drv_init(&disp_drv);
disp_drv.buffer = &disp_buf;
disp_drv.flush_cb = lvgl_flush_cb;
disp_drv.sw_rotate = 1;   // add for rotation
disp_drv.rotated = LV_DISP_ROT_90;   // add for rotation
lv_disp_drv_register(&disp_drv)

方法二:配置0x36h为0x60,二进制为:0110 0000

 

根据数据手册描述,只需配置MY,MX,MV即可控制屏幕显示方向

配置为0110 000的含义为:x,y轴先交换,y轴不变,x轴镜像

最终表现形式:顺时针旋转90度

 

 

 

4.配置完后下载,屏幕应为花屏状态,还需要交换屏幕长宽定义

 

5.编译下载屏幕即可正常显示

### ST7735S 屏幕旋转180驱动代码示例 对于ST7735S屏幕,在Micropython环境下实现屏幕旋转功能主要通过修改初始化命令集以及调整坐标映射来完成。具体来说,可以通过设置特定的旋转指令让屏幕按照需求的方向显示内容。 在ESP32上使用MicroPython控制ST7735S屏幕时,可以调用`display.init()`函数中的参数或者直接发送旋转命令给显示器以改变其方向。为了实现180翻转效果,通常会涉及到向LCD控制器写入相应的寄存器值[^1]。 下面是一个简单的例子展示如何配置并应用这种变换: ```python from machine import Pin, SPI import st7735 # 设置SPI通信和引脚定义 spi = SPI(1, baudrate=40000000, polarity=0, phase=0, sck=Pin(14), mosi=Pin(13)) cs = Pin(15, Pin.OUT) dc = Pin(27, Pin.OUT) # 创建ST7735对象实例化屏幕 screen = st7735.ST7735(spi, cs, dc, rst=None) def rotate_180(): """ 将屏幕顺时针旋转180 """ screen._write_command(screen.MADCTL) # 修改内存数据访问控制 screen._write_data(b'\xc0') # MADCTL寄存器值对应于18旋转模式 rotate_180() ``` 这段代码首先设置了用于与ST7735S通讯所需的硬件资源(如SPI总线),接着创建了一个代表该设备的对象。最后定义了名为`rotate_180`的功能,它负责更改液晶面板内部的数据读取顺序从而达到视觉上的反转效果。这里使用的MADCTL命令及其后的参数决定了具体的旋转方式;在这个案例中选择了`\xC0`作为输入值表示全屏逆时针旋转两次即相当于整体顺时针旋转180
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值