嵌入式显示与触摸驱动开发实战:从MIPI DSI接口到Linux输入子系统
1. 项目概述从“7-DSI-TOUCH-A”看嵌入式显示与交互的核心最近在整理一个老项目的硬件设计文档又看到了“7-DSI-TOUCH-A”这个熟悉的板卡代号。这可不是什么神秘代码它直白地告诉了我们这块板子的核心功能一块7英寸的显示屏通过MIPI DSI接口与主控连接并且集成了触摸功能。对于从事嵌入式系统、智能硬件、工业HMI人机界面开发的朋友来说这类板卡是再熟悉不过的“老朋友”了。它可能是一个核心显示模组也可能是一块完整的开发板其背后串联起的是从底层驱动到上层应用的一整套技术栈。简单来说“7-DSI-TOUCH-A”这个标题精准地锚定了三个关键维度物理规格7英寸、显示接口DSI和交互方式TOUCH。7英寸是一个在便携与可视性之间取得平衡的经典尺寸常见于手持设备、智能家居中控、工业仪表等场景。DSIDisplay Serial Interface则是移动和嵌入式领域事实上的高清显示串行标准以其高带宽、低引脚数、低功耗的特性几乎统治了智能手机和平板电脑的显示接口。而“TOUCH”更是现代人机交互的基石从最简单的电阻屏到如今主流的电容屏它让指令输入变得直观自然。这篇文章我就想围绕这个看似简单的板卡代号深入聊聊在实际项目中如何让这样一块“7-DSI-TOUCH-A”模组真正跑起来、用得好。这不仅仅是点亮屏幕和让触摸有反应那么简单它涉及到驱动适配、时序调试、数据传输、事件处理乃至性能优化等一系列环环相扣的挑战。无论你是正在选型的硬件工程师还是负责驱动移植的软件工程师或是需要理解底层机制的应用开发者希望这些从实际项目中踩坑得来的经验能给你带来一些切实的参考。2. 核心模块深度解析硬件选型与接口原理拿到一块“7-DSI-TOUCH-A”模组第一步不是急着上电而是彻底理解它的硬件构成和接口定义。这决定了后续所有软件工作的边界和可能性。2.1 显示部分MIPI DSI接口的“语言”与“节奏”DSI接口是这套系统的“大动脉”负责将图像数据高速、串行地输送到显示屏。它的物理层基于差分信号Data Lane通常包含1对时钟差分对CLK CLK-和1到4对数据差分对Data0/-, Data1/-...。对于7英寸、分辨率常见为1024x600或1280x800的屏幕1到2对数据通道Lane通常就足够了这能在性能和布线复杂度间取得良好平衡。DSI的通信协议层才是真正的难点。它封装了两种主要的数据包类型视频模式数据包用于持续不断地传输图像帧数据。这是显示功能的核心数据以“像素流”的形式发送。命令模式数据包用于发送初始化指令、读写寄存器、控制屏幕参数如亮度、对比度。这些命令通常遵循显示屏驱动芯片Driver IC自己的一套寄存器定义你需要从屏厂提供的规格书Spec中找到它。这里有一个关键概念初始化序列Init Sequence。几乎所有的显示屏在上电后都需要通过DSI的命令模式发送一系列特定的寄存器配置值才能正常显示。这个序列包括设置像素格式如RGB565、RGB888、设定扫描方向、打开显示输出等。这个序列因屏而异是驱动调试中必须正确配置的部分。我通常的做法是向屏厂索要一个标准的初始化代码C语言数组或文本形式然后将其转换为驱动框架要求的格式。另一个重点是时序参数除了分辨率你还需要在驱动中配置hsync行同步、vsync场同步、hback_porch、hfront_porch、vback_porch、vfront_porch等参数。这些参数共同决定了每一帧图像在时间和空间上的结构。如果配置错误轻则显示偏移、重影重则完全无显示。这些参数同样必须严格参照屏厂规格书。2.2 触摸部分接口类型与协议抉择“TOUCH-A”中的“A”可能代表某个具体的触摸芯片型号或接口类型。触摸部分通常独立于显示拥有自己的接口。常见的有以下几种I2C接口这是目前电容触摸屏最主流的选择。好处是接口简单引脚少协议标准易于驱动。触摸芯片作为一个I2C从设备主控通过I2C读取其寄存器来获取触摸坐标、手势等信息。SPI接口在某些需要更高报告率或特殊功能的场景下使用。速度比I2C快但需要更多引脚。USB接口一些模块将触摸控制器做成USB HID设备这样在主控特别是运行Linux或Android的系统上可以直接被识别为标准输入设备无需额外驱动即插即用但增加了硬件复杂度和成本。对于I2C接口的触摸芯片你需要关注设备地址触摸芯片的I2C从机地址用于寻址。中断引脚INT这是一个非常重要的硬件信号。当有触摸事件发生时触摸芯片会通过这个引脚向主控发出中断通知主控“有数据可读”。采用中断方式而非轮询可以极大降低CPU占用并提高响应速度。数据格式读取的坐标数据是原始值Raw Data还是已经换算好的屏幕坐标值是绝对坐标还是相对坐标上报的点数单点/多点和频率是多少在硬件设计阶段务必确认触摸芯片的中断引脚是否已正确连接到主控的某个GPIO并确保该GPIO支持中断功能。这是保证触摸响应实时性的硬件基础。2.3 电源与背光稳定显示的基石一个常被忽视但至关重要的问题是电源管理。一块7英寸的LCD屏幕及其背光功耗不容小觑。屏幕电源VDD通常需要2.8V或3.3V等要求电源干净、稳定纹波小。不稳定的电源会导致显示闪烁、花屏甚至损坏驱动芯片。背光电源LED背光LED串通常需要较高的电压可能12V或更高和一定的驱动电流。这需要一个专门的背光驱动电路比如Boost升压芯片。背光的亮度调节PWM调光也是通过这个驱动电路实现的你需要一个主控的PWM引脚来控制它。在原理图设计时要为屏幕和背光预留足够的电源通道和滤波电容。在驱动调试时如果出现显示异常在排查软件之前先用示波器测量一下各路电源的电压和纹波这能排除很多低级错误。3. 软件驱动开发实战从零构建显示与触摸栈硬件准备就绪后真正的挑战在于软件。在Linux或Android系统下我们需要为这两个模块构建完整的驱动栈。3.1 DSI显示驱动适配以Linux DRM/KMS框架为例现代Linux显示驱动普遍基于DRMDirect Rendering Manager和KMSKernel Mode Setting框架。你的工作不是从头写驱动而是为你的特定屏幕编写一个“板级支持”文件。定义设备树Device Tree节点这是硬件描述的核心。你需要在设备树中创建一个DSI主机控制器节点下的子节点来描述你的屏幕。dsi { status okay; #address-cells 1; #size-cells 0; panel: panel0 { compatible your-panel-manufacturer,your-panel-model; // 用于匹配驱动 reg 0; backlight backlight; // 关联背光设备 enable-gpios gpio0 12 GPIO_ACTIVE_HIGH; // 屏幕使能引脚 // 关键时序参数必须与规格书一致 panel-timing { clock-frequency 71000000; // 点时钟 hactive 1280; vactive 800; hfront-porch 48; hback-porch 80; hsync-len 32; vfront-porch 3; vback-porch 14; vsync-len 6; hsync-active 0; // 同步极性 vsync-active 0; de-active 1; pixelclk-active 0; }; // 初始化序列通常放在驱动代码中这里也可简单引用 init-sequence [ // 一组16进制的寄存器地址和数据 0xXX 0xYY 0xXX 0xYY ... ]; }; };compatible字符串是关键内核会根据它来匹配对应的驱动文件panel driver。编写或适配Panel驱动你需要创建一个内核模块其of_device_id表包含上述compatible字符串。这个驱动的主要任务是在probe函数中解析设备树中的时序参数和GPIO。实现prepare、enable、disable、unprepare回调函数。在prepare或enable中通过DSI命令模式发送那个至关重要的初始化序列。提供get_modes回调向DRM框架报告屏幕支持的模式分辨率、刷新率。调试与验证首先确保主控的DSI主机控制器驱动已正确加载并且时钟、电源等基础资源就位。使用dmesg | grep -i dsi或dmesg | grep panel查看内核日志确认你的panel驱动是否被成功匹配和探测probe。如果屏幕不亮检查背光PWM和使能GPIO的电平是否正确。可以使用echo 255 /sys/class/backlight/.../brightness手动测试背光。如果背光亮但无图像问题很可能出在初始化序列或时序参数上。此时需要借助逻辑分析仪或示波器抓取DSI总线上的数据对比发送的命令是否与规格书要求一致。这是最考验耐心的环节。3.2 触摸驱动集成基于Linux输入子系统Linux输入子系统Input Subsystem为触摸设备提供了完美的抽象层。我们的目标是将触摸芯片驱动成一个标准的输入设备。设备树配置i2c2 { status okay; clock-frequency 400000; touchscreen38 { // 假设I2C地址是0x38 compatible your-touch-ic-vendor,ic-model; reg 0x38; interrupt-parent gpio1; // 中断引脚所属的GPIO控制器 interrupts 9 IRQ_TYPE_EDGE_FALLING; // GPIO1_9下降沿触发 reset-gpios gpio1 8 GPIO_ACTIVE_LOW; // 复位引脚如有 touchscreen-size-x 1280; touchscreen-size-y 800; // 有些驱动还需要指定 invert-x, invert-y 等属性来调整坐标方向 }; };驱动实现要点中断处理在驱动中申请中断中断服务程序ISR里通常只做两件事1) 清除中断标志通过读某个寄存器2) 调度一个底半部任务如工作队列workqueue来真正处理数据读取。避免在ISR中进行耗时长的I2C读取操作。数据读取与上报在底半部中通过I2C读取触摸芯片的数据寄存器解析出触摸点的ID、X/Y坐标、压力等信息。然后使用input_report_abs()、input_report_key()等函数将触摸事件上报给输入子系统。坐标转换触摸芯片上报的可能是原始AD值需要根据touchscreen-size-x/y在驱动内或通过输入子系统的evdev进行缩放校准转换成屏幕坐标。电源管理实现suspend和resume回调在系统休眠时让触摸芯片进入低功耗模式唤醒时重新初始化。用户层验证 驱动加载后会在/dev/input/下生成类似eventX的设备节点。使用工具evtest可以实时查看触摸事件sudo evtest /dev/input/event2在屏幕上滑动你应该能看到ABS_X,ABS_Y,BTN_TOUCH等事件源源不断地打印出来。这证明驱动层已经打通。图形界面如X11, Wayland compositor或Android的InputReader会监听这些事件并分发给相应的应用。4. 系统集成与性能调优实战驱动能工作只是第一步要让用户体验流畅还需要进行系统级的集成和调优。4.1 显示性能优化避免卡顿与撕裂对于7英寸屏虽然分辨率不高但如果UI复杂或动画多依然可能卡顿。帧率FPS首先通过cat /sys/kernel/debug/dri/0/plane_status或使用modetest工具确认实际的刷新率是否达到60Hz。检查DSI时钟配置是否正确。图形流水线确保使用的是硬件合成如ARM Mali GPU的OpenGL ES渲染而不是低效的CPU软件渲染。在Android上可以打开“开发者选项”中的“GPU渲染模式分析”来观察。内存带宽显示帧缓冲区Framebuffer的访问会占用内存带宽。确保帧缓冲区使用连续物理内存如CMA或ION内存并且其格式如RGBX8888与硬件加速器要求匹配可以减少不必要的格式转换开销。垂直同步VSync确保图形系统如Android的SurfaceFlinger正确启用了VSync。它可以协调应用渲染和屏幕刷新防止画面撕裂但错误的VSync配置也可能引入延迟。4.2 触摸响应优化降低延迟触摸响应的延迟是用户体验的敏感点。中断响应确保触摸中断的优先级设置合理不会被其他高负载任务长时间阻塞。在Linux内核配置中可以考虑将触摸驱动的中断处理线程irq/xxx-ts的优先级提高。报告率检查触摸芯片支持的最高报告率并在驱动中设置为最高值如125Hz。更高的报告率意味着更短的坐标上报间隔滑动会更跟手。数据滤波与去抖过于灵敏的触摸芯片可能会上报微小的抖动导致光标颤抖。可以在驱动中或用户空间如libinput加入简单的软件滤波算法但要注意不能引入过多延迟。固件更新有时触摸芯片本身的固件Firmware存在bug会导致跳点、划线不连续等问题。关注芯片厂商的更新并掌握通过I2C或USB DFU设备固件升级方式更新触摸芯片固件的方法。4.3 功耗管理策略在电池供电的设备中显示和触摸是耗电大户。动态背光调节根据环境光传感器ALS的读数动态调整屏幕背光亮度。这是最有效的省电手段之一。屏幕休眠当系统检测到一段时间无操作后可以通过DRM/KMS框架的disable回调关闭屏幕显示和DSI信号输出同时将背光亮度调至最低或关闭。触摸芯片休眠在屏幕关闭时通过驱动向触摸芯片发送休眠命令使其进入极低功耗的待机模式。当有按键或传感器唤醒系统时再快速恢复触摸功能。5. 常见问题排查与调试技巧实录在实际开发中你一定会遇到各种奇怪的问题。这里记录几个典型场景和排查思路。5.1 显示类问题问题一屏幕点亮后白屏、花屏或显示错乱。排查步骤查电源用万用表和示波器测量屏幕的VDD、IOVCC等电源引脚确认电压是否准确、稳定上电时序是否符合要求有些屏要求核心电压先于IO电压上电。查初始化序列这是最高频的故障点。逐条核对驱动中发送的初始化命令与屏厂提供的规格书或参考代码进行比对。特别注意命令的延迟mdelay要求有些命令发送后需要等待几毫秒。查时序参数确认设备树或驱动代码中的panel-timing参数与规格书完全一致一个像素的误差都可能导致显示异常。查数据链路如果以上都正确可能是某条MIPI DSI数据链路Lane物理连接有问题导致数据传输错误。可以尝试在驱动中减少使用的Lane数量如从4lane降到2lane来测试。问题二显示有闪烁或水波纹。排查步骤查背光PWM背光PWM频率过低通常低于200Hz可能会被人眼感知到闪烁。尝试提高PWM频率如到1kHz以上。查电源纹波用示波器探头直接测量屏幕电源引脚上的纹波。如果纹波过大如超过50mV需要检查电源电路的电感、电容是否合适或者考虑为屏幕电源增加一个独立的LDO低压差线性稳压器。查接地确保屏幕的接地良好数字地和模拟地如果分开的布局合理。5.2 触摸类问题问题一触摸完全无反应。排查步骤查中断首先用cat /proc/interrupts命令查看你的触摸中断号是否有计数在增加。如果没有说明硬件中断未触发。检查设备树中断配置、GPIO引脚复用是否正确用万用表测量中断引脚在触摸时电平是否变化。查I2C通信使用i2cdetect工具扫描I2C总线看是否能发现触摸芯片的地址。如果发现不了检查I2C总线的上拉电阻、SCL/SDA线连接以及触摸芯片的电源和复位。查驱动加载dmesg | grep touch或dmesg | grep i2c查看驱动探测是否成功有无报错信息。问题二触摸点漂移、划线不连续或跳点。排查步骤查电源噪声触摸芯片的模拟供电AVDD对噪声非常敏感。用示波器仔细检查其电源质量。查屏体干扰显示屏本身是一个巨大的噪声源。确保触摸芯片的感应线路Sensor Trace与显示屏的排线、背光驱动线有良好的隔离必要时增加屏蔽层。查固件与配置确认触摸芯片的固件版本并检查驱动中是否加载了正确的配置文件CFG。很多触摸芯片需要一份针对特定屏体和结构的参数配置文件来优化性能。进行校准运行系统的触摸校准程序如果有。对于电阻屏校准是必须的对于电容屏校准可以修正微小的线性误差。问题三触摸唤醒系统后第一次触摸失灵。原因与解决这通常是电源管理序列的问题。触摸芯片从深度休眠被唤醒后需要一定的稳定时间才能开始正常报告坐标。而系统唤醒后应用层或图形界面可能立即开始等待触摸事件。解决方案是在驱动的resume函数中在触摸芯片完成初始化后主动添加一个几十毫秒的延迟msleep(50)或者在上报第一个有效的触摸事件之前先丢弃刚唤醒时产生的不稳定数据包。调试显示和触摸问题逻辑分析仪和示波器是你的最佳伙伴。尤其是对于MIPI DSI和I2C这类数字总线能够抓取并解析实际通信数据包是定位问题的“终极武器”。同时养成仔细阅读芯片数据手册和屏厂规格书的习惯里面往往藏着解决问题的关键线索。

相关新闻

告别手动抢票烦恼:大麦网自动抢票脚本终极指南

告别手动抢票烦恼:大麦网自动抢票脚本终极指南

告别手动抢票烦恼:大麦网自动抢票脚本终极指南 【免费下载链接】Automatic_ticket_purchase 大麦网抢票脚本 项目地址: https://gitcode.com/GitHub_Trending/au/Automatic_ticket_purchase 还在为抢不到心仪演唱会门票而焦虑吗?当周杰伦、五月天…

2026/8/6 2:44:15 阅读更多 →
2026年老旧鱼池升级自动排污,315集渣仓真能治浑水?

2026年老旧鱼池升级自动排污,315集渣仓真能治浑水?

行业里有个反常识的冷知识,可能颠覆很多人的认知:你花大价钱建的鱼池,水质变浑变绿,八成不是鱼的问题,也不是你喂食喂多了,而是从建池那天起,过滤系统就埋下了隐患。建池时省下的每一分过滤钱&a…

2026/8/7 13:31:07 阅读更多 →
[具身智能-716]:ros2 pkg list 的功能以及 ros2 是如何知道自己安装了多少功能包的?

[具身智能-716]:ros2 pkg list 的功能以及 ros2 是如何知道自己安装了多少功能包的?

一、ros2 pkg list 功能说明作用扫描并列出系统中所有 ROS2 功能包(package)。bash运行ros2 pkg list # 过滤查找某个包 ros2 pkg list | grep yahboom配套常用命令:bash运行ros2 pkg describe 包名 # 查看包信息 ros2 pkg executable…

2026/8/6 9:46:24 阅读更多 →

最新新闻

OPC一人公司:创业者必备的有限责任保护与运营指南

OPC一人公司:创业者必备的有限责任保护与运营指南

1. OPC一人公司概述OPC(One Person Company)即一人公司,是指由单个自然人股东设立的有限责任公司。这个概念最早起源于英国公司法,后来被印度等国家引入并本土化。在国内,类似的概念是"一人有限责任公司"&am…

2026/8/8 4:33:22 阅读更多 →
线下活动策划与执行的关键要素

线下活动策划与执行的关键要素

1. 活动背景与筹备过程 作为北京地区某兴趣俱乐部的组织者,我们已经在过去两个月成功举办了两场线下活动。这次第三次聚会选址在朝阳区一家新开的复合型文化空间,场地面积约200平,兼具咖啡厅、小型展览和沙龙功能。选择这里主要考虑到三个因素…

2026/8/8 4:33:22 阅读更多 →
FPGA综合优化中信号保留策略:keep与keep_hierarchy属性实战解析

FPGA综合优化中信号保留策略:keep与keep_hierarchy属性实战解析

1. 项目概述:FPGA综合优化与信号保留的永恒博弈在FPGA开发领域,尤其是使用上海安陆这类国产EDA工具链时,一个让工程师们又爱又恨的环节就是“综合”。爱它,是因为它将我们精心设计的RTL代码转化为高效的网表,是设计实现…

2026/8/8 4:33:22 阅读更多 →
数位DP实战:C++解蓝桥杯“修改数位”问题与通用框架

数位DP实战:C++解蓝桥杯“修改数位”问题与通用框架

1. 项目概述:从“修改数位”看竞赛题的思维转换最近在带学生刷信奥和蓝桥杯的题目,遇到一道挺有意思的题,P12289 “[蓝桥杯 2024 国 Java A] 修改数位”。虽然原题标注是Java A组,但核心算法思想是语言无关的,用C来实现…

2026/8/8 4:33:22 阅读更多 →
SpringBoot+Vue船运物流管理系统架构与实现

SpringBoot+Vue船运物流管理系统架构与实现

1. 项目概述:船运物流管理系统的技术架构与业务价值这套基于SpringBootVueMyBatisMySQL的船运物流管理系统,采用了典型的前后端分离架构,是当前企业级应用开发的主流技术组合。我在实际物流行业信息化项目中,这套技术栈的稳定性已…

2026/8/8 4:33:22 阅读更多 →
前端视觉特效实战:CSS混合模式与Canvas合成打造“透明雨衣”质感界面

前端视觉特效实战:CSS混合模式与Canvas合成打造“透明雨衣”质感界面

最近在开发一个天气应用时,遇到了一个有趣的UI设计需求:如何在界面上优雅地展示“雨天”状态,并让用户感受到雨天的氛围,而不是简单地显示一个图标和“有雨”的文字。这让我想起了网络上流传的一个生动比喻——“香蕉姐穿个透明雨…

2026/8/8 4:32:22 阅读更多 →

日新闻

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

AI多智能体时代来临,读懂MCP与A2A架构,抢占企业数字化新风口

当下AI应用飞速普及,无数企业下场搭建智能体系统,可落地阶段难题接踵而至:上下文无限堆积频繁爆栈、AI工具调用准确率低下、Token成本居高不下、企业数据权限混乱暗藏安全隐患……很多团队卡在架构搭建环节,空有前沿技术概念&…

2026/8/8 0:00:07 阅读更多 →
PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码

PHP二维码生成终极指南:用chillerlan/php-qrcode打造专业级二维码 【免费下载链接】php-qrcode A PHP QR Code generator and reader with a user-friendly API. 项目地址: https://gitcode.com/gh_mirrors/ph/php-qrcode 在当今数字时代,二维码已…

2026/8/8 0:00:08 阅读更多 →
UniApp微信小程序隐私保护组件开发:从原理到实战

UniApp微信小程序隐私保护组件开发:从原理到实战

1. 项目缘起:为什么我们需要一个隐私保护通用组件?最近在维护一个基于uniapp开发的微信小程序矩阵时,我遇到了一个非常棘手的问题。随着平台对用户隐私保护的要求越来越严格,几乎每一个新版本发布,或者在某些特定机型&…

2026/8/8 0:00:08 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/6 22:02:27 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/6 22:02:27 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/7 23:24:08 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/7 17:02:37 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/7 23:54:54 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/7 17:02:36 阅读更多 →