TFT-eSPI库 驱动GC9A01圆屏 镜像操作

本文介绍了如何修改TFT_eSPI库中的GC9A01屏幕驱动,以实现坐标系旋转和镜像功能。通过修改rotation变量的取模运算,增加case4选项,添加了沿Y轴镜像旋转的功能。利用TFT_MAD CTL命令和不同的组合标志,可以实现0-3的常规旋转以及新的4号情况的镜像旋转。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开TFT_eSPI/TFT_Drivers/GC9A01_Rotation.h (其他屏幕驱动同理)
用以下代码覆盖


// This is the command sequence that rotates the GC9A01 driver coordinate frame

rotation = m % 5;

writecommand(TFT_MADCTL);
switch (rotation) {
    case 0: // Portrait
        writedata(TFT_MAD_BGR);
        _width  = _init_width;
        _height = _init_height;
        break;
    case 1: // Landscape (Portrait + 90)
        writedata(TFT_MAD_MX | TFT_MAD_MV | TFT_MAD_BGR);
        _width  = _init_height;
        _height = _init_width;
        break;
    case 2: // Inverter portrait
        writedata(TFT_MAD_MX | TFT_MAD_MY | TFT_MAD_BGR);
        _width  = _init_width;
        _height = _init_height;
        break;
    case 3: // Inverted landscape
        writedata(TFT_MAD_MV | TFT_MAD_MY | TFT_MAD_BGR);
        _width  = _init_height;
        _height = _init_width;
        break;
    /****添加case4**********/
    case 4:
        writedata(TFT_MAD_MY | TFT_MAD_BGR);// 设置镜像旋转
        _width  = _init_width;
        _height = _init_height;
        break;
}

观察到,此代码将rotation = m % 4;改为了rotation = m % 5;
并且添加了case 4:选项

writedata()后选项含义:
TFT_MAD_BGR不解释,遇到镜像后RB翻转就加上

镜像前:
请添加图片描述

TFT_MAD_MX沿Y轴翻转
请添加图片描述

TFT_MAD_MY沿X轴翻转
请添加图片描述

TFT_MAD_MV沿Y轴翻转并顺时针旋转270
请添加图片描述

TFT_MAD_ML沿X轴翻转 (与TFT_MAD_MY作用相同,暂不清楚作用)
请添加图片描述

可以看到,原代码中就是用了TFT_MAD_MX TFT_MAD_MY TFT_MAD_MV TFT_MAD_ML|连接
实现了90,180,270的旋转

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值