Openharmony 下载到rk3568实现横屏

前言:

Openharmony 源码版本4.1 release

板子:rk3568

1.修改“abilities”中的“orientation”实现横竖屏

entyr->src->module.json5文件里面添加

"orientation": "landscape",

2.修改系统源码属性实现横竖屏切换

通过这种方式,每个下载到板子的应用都可以改变屏幕显示方式,不需要去添加字段。

就是通过ubantu 拉取openharmony 4.1的源码, 然后对源码修改编译,最后烧录进rk3568

修改目录:foundation/window/window_manager/resources/config/rk3568/display_manager_config.xml

修改文件display_manager_config.xml的buildInDefaultOrientation参数值为:2 (Orientation::HORIZONTAL)

UNSPECIFIED(0):未定义,由系统判断

VERTICAL(1):竖屏显示

HORIZONTAL(2):横屏显示

REVERSE_VERTICAL(3):反向竖屏显示

REVERSE_HORIZONTAL(4):反向横屏显示

这个有部分转载其他博主,有侵权请联系删除。

### OpenHarmonyRK356X MIPI 屏幕适配配置指南 在 OpenHarmony 平台上适配 RK356X 的 MIPI 屏幕,主要涉及硬件驱动、内核配置以及框架支持等方面的工作。以下是详细的说明: --- #### 1. **DTS 文件配置** MIPI 显示屏的适配需要通过 Device Tree Source (DTS) 文件定义屏幕的具体参数。以下是一个典型的 DTS 配置示例: ```c &dsi { status = "okay"; panel@0 { compatible = "rockchip,mipi-panel"; reg = <0>; reset-gpios = <&gpio3 RK_PA7 GPIO_ACTIVE_LOW>; port { dsi_in: endpoint { remote-endpoint = <&panel_out>; }; }; modes { mode1: mode@0 { hactive = <1920>; /* 水平分辨率 */ vactive = <1080>; /* 垂直分辨率 */ pixelclock = <148500>; /* 像素时钟频率(kHz)*/ hfront-porch = <8>; hback-porch = <148>; hsync-len = <44>; vfront-porch = <4>; vback-porch = <36>; vsync-len = <5>; refresh = <60>; /* 刷新率(Hz)*/ }; }; }; }; ``` 上述代码片段定义了一个分辨率为 1920x1080 的 MIPI 屏幕,并设置了像素时钟和其他时序参数[^2]。 --- #### 2. **触摸屏配置** 对于集成触摸功能的 MIPI 屏幕,还需要配置触摸 IC 的驱动。以 Goodix GT9XX 系列为例,可以在 DTS 中添加如下节点: ```c touchscreen@5d { compatible = "goodix,gt9xx"; reg = <0x5d>; pinctrl-names = "default"; pinctrl-0 = <&touch_gpio>; touch-gpio = <&gpio1 RK_PA4 IRQ_TYPE_LEVEL_LOW>; reset-gpio = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>; max-x = <1280>; /* 触摸区域最大 X 轴坐标 */ max-y = <800>; /* 触摸区域最大 Y 轴坐标 */ tp-size = <970>; /* 触摸屏尺寸 */ status = "okay"; /* 如果触摸范围不匹配,可以尝试交换以下两个参数 */ touchscreen-size-x = <800>; touchscreen-size-y = <1280>; }; ``` 当发现触摸范围异常时,可通过调整 `touchscreen-size-x` 和 `touchscreen-size-y` 参数解决[^1]。 --- #### 3. **内核配置** 为了支持 MIPI 屏幕和触摸功能,需要确保内核启用了相关模块。以下是关键的内核配置项: ```plaintext Device Drivers ---> Graphics support ---> <*> Support for frame buffer devices ---> <*> Rockchip Display Subsystem Support [*] Enable DRM/KMS/Framebuffer support for rockchip SoCs [*] Enable VOP (Video Output Processor) support [*] Enable MIPI-DSI controller support Input device support ---> Touchscreens ---> <*> Goodix I2C touchscreen driver ``` 这些选项分别用于初始化显示子系统和支持 Goodix 触摸屏驱动程序[^2]。 --- #### 4. **OpenHarmony 框架支持** 在 OpenHarmony实现 MIPI 屏幕适配,不仅依赖于底层驱动,还涉及到图形渲染框架的支持。以下是几个需要注意的地方: - **LiteOS 图形框架**:OpenHarmony 使用 LiteOS 提供基础服务,因此需要确保图形绘制逻辑能够正确映射到 framebuffer 设备。 - **HDF(Hardware Driver Foundation)**:OpenHarmony 引入 HDF 架构统一管理硬件资源。MIPI 屏幕的相关驱动应遵循 HDF 接口规范编写。 - **UI 渲染层**:如果使用的是 ArkUI 或其他高级 UI 库,需验证其能否兼容当前屏幕分辨率及刷新率。 --- #### 5. **测试与调试** 完成配置后,建议执行以下操作验证适配效果: - 启动设备并观察是否能正常进入桌面环境; - 运行简单的绘图应用程序检测屏幕输出是否稳定; - 测试触摸屏交互功能,确认点击位置与实际反馈一致。 如果有任何问题,可以通过日志分析定位原因。例如查看 `/dev/log/main` 日志文件中的错误提示信息。 --- ### 示例代码 以下是一段基于 Python 的简单绘图测试脚本,可用于初步验证屏幕工作状态: ```python import pygame pygame.init() screen = pygame.display.set_mode((1920, 1080)) # 设置分辨率 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False screen.fill((0, 0, 255)) # 填充蓝色背景 pygame.draw.circle(screen, (255, 0, 0), (960, 540), 50) # 绘制红色圆圈 pygame.display.flip() pygame.quit() ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值