Linux串口设备查看与诊断全攻略:从基础命令到高级排查
1. 项目概述为什么需要查看Linux串口在嵌入式开发、工控调试、物联网设备维护甚至是连接一些老式外设时串口Serial Port都是一个绕不开的接口。它不像USB那样“即插即用”在图形界面下点几下就能识别。在Linux系统里串口设备以文件的形式存在一切操作都围绕着这些设备文件展开。所以当你插上一个USB转串口线或者主板上自带串口第一件事就是搞清楚“系统认出来了吗它被分配成了哪个设备文件”这个问题看似简单但新手往往会在这里卡住。你可能会遇到“权限不足”、“设备不存在”或者多个串口设备混在一起分不清哪个是哪个的窘境。更深入一点你可能需要确认串口的硬件参数、查看是否有进程占用了它或者排查驱动是否正常加载。掌握一套系统性的查看方法是进行后续一切串口通信、调试和开发的基础。无论你是刚接触树莓派、玩转STM32还是在服务器机房调试交换机这套技能都必不可少。2. 核心思路与工具选型从基础到进阶查看Linux本机串口不是一个单一命令就能完全搞定的事情它更像一个诊断流程。我们需要从多个维度获取信息相互印证。核心思路可以概括为先找设备文件再查硬件信息最后看系统状态。基于这个思路我们使用的工具也分成了几个层次文件系统层工具最直接用于列出设备文件如ls、find。系统信息层工具用于获取设备详细信息、驱动状态如dmesg、udevadm。系统监控层工具用于查看设备占用情况如lsof、fuser。专用串口工具用于测试和配置串口参数如setserial、stty。为什么不只用一个工具因为每个工具提供的信息视角不同。ls /dev/tty*告诉你“有什么”dmesg告诉你“系统怎么识别它的”setserial告诉你“它具体的硬件参数是什么”lsof告诉你“谁正在用它”。组合使用才能形成完整的认知。注意在Linux中串口设备文件通常命名为ttyS0、ttyS1...对应传统的COM1、COM2等而USB转串口设备则通常命名为ttyUSB0、ttyUSB1...。一些虚拟串口或蓝牙串口可能以ttyACM0等形式出现。这是最基本的命名规则。3. 基础查看快速定位串口设备文件这是最常用、最快捷的第一步目的是确认系统里有哪些串口设备节点。3.1 使用ls命令列出设备打开终端直接使用ls命令配合通配符来查看/dev目录下所有以tty开头的设备文件这涵盖了绝大多数串口。ls /dev/tty*这条命令会列出所有tty设备包括虚拟终端如tty1、伪终端如pts/0和真正的串口。输出可能会很长。为了更精确地筛选出我们关心的串口通常是ttyS和ttyUSB可以这样做ls /dev/ttyS* /dev/ttyUSB* 2/dev/null这条命令同时查找ttyS*和ttyUSB*并将可能的“文件不存在”错误信息2/dev/null重定向丢弃使输出更干净。如果看到了类似/dev/ttyUSB0或/dev/ttyS0的输出就说明系统识别到了相应的串口设备。实操心得刚插上USB转串口线时立刻执行ls /dev/ttyUSB*可能看不到设备因为系统需要一点时间加载驱动和创建设备节点。等待一两秒再执行或者插拔后观察终端是否有新的内核消息输出。3.2 使用find命令进行更灵活的搜索如果你不确定设备的确切命名模式或者想一次性找出所有可能的串口设备find命令更强大。find /dev -name tty[SUA]* -type c这个命令的含义是在/dev目录下查找名字符合ttyS*、ttyU*或ttyA*模式且类型为字符设备-type c的文件。这能有效地将串口设备从众多tty设备中筛选出来。4. 深入诊断获取串口详细信息与状态找到设备文件只是开始。我们还需要知道这个串口对应的物理端口是什么驱动正常吗它的硬件地址I/O端口、中断号是多少4.1 使用dmesg查看内核日志dmesg命令是查看内核环形缓冲区消息的利器。当你插入一个USB转串口设备时内核会输出一系列日志记录设备的识别、驱动加载和设备节点创建过程。这是判断设备是否被系统正确识别的黄金标准。插入设备后立即在终端运行dmesg | tail -20或者更精确地过滤与tty和usb相关的信息dmesg | grep -E \tty|usb\你会看到类似下面的输出[ 1234.567890] usb 1-1.2: new full-speed USB device number 5 using ehci-pci [ 1234.698765] usb 1-1.2: New USB device found, idVendor1a86, idProduct7523 [ 1234.698768] usb 1-1.2: New USB device strings: Mfr1, Product2, SerialNumber0 [ 1234.698770] usb 1-1.2: Product: USB2.0-Serial [ 1234.699123] ch341 1-1.2:1.0: ch341-uart converter detected [ 1234.701234] usb 1-1.2: ch341-uart converter now attached to ttyUSB0这段日志清晰地告诉我们系统识别了一个新的USB设备ID为1a86:7523这是常见的CH340芯片标识。ch341驱动被加载并识别该设备为UART转换器。最终创建了设备节点/dev/ttyUSB0。排查价值如果插入设备后dmesg没有任何相关输出可能意味着设备损坏、USB口故障或者更常见的——系统缺少对应的内核驱动模块。例如对于流行的CP2102或FT232芯片可能需要单独安装cp210x或ftdi_sio驱动不过大多数现代Linux发行版已内置。4.2 使用setserial查询传统串口参数setserial是一个专门用于查看和设置传统串口ttyS*参数的工具。对于主板自带的串口通常是ttyS0它能提供非常底层的硬件信息。setserial -g /dev/ttyS0典型输出如下/dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4这里显示了UART类型16550A这是常见的UART芯片型号。I/O端口地址0x03f8这是COM1的标准地址。中断请求号4这是COM1的标准IRQ。重要提示setserial通常对USB转串口ttyUSB*无效。它主要作用于那些在主板上有固定I/O端口和IRQ的“真”串口。对于USB串口其“端口”和“IRQ”是USB总线动态分配的没有固定值因此setserial要么报错要么显示为0。4.3 使用udevadm查看设备属性udev是Linux的设备管理器udevadm命令可以查询它维护的详尽设备数据库。这个命令能提供关于设备的几乎所有信息包括厂商ID、产品ID、驱动、子系统、设备路径等信息非常全面。udevadm info -a -n /dev/ttyUSB0 | less-a表示打印所有父设备的属性-n指定设备节点。输出信息量很大我们可以用grep提取关键信息udevadm info -q property -n /dev/ttyUSB0 | grep -E \ID_VENDOR|ID_MODEL|DRIVER\输出可能类似ID_VENDOR_ID1a86 ID_MODEL_ID7523 DRIVERch341这清晰地确认了设备的厂商、型号和所使用的驱动与dmesg的信息相互印证。5. 高级排查检查串口占用与配置有时候你找到了设备但无法打开它进行读写提示“设备忙”或“权限被拒绝”。这时就需要进行占用检查和权限配置。5.1 使用lsof或fuser查看占用进程lsoflist open files可以列出所有打开的文件自然包括设备文件。sudo lsof /dev/ttyUSB0如果该串口正在被某个进程使用你会看到类似输出COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME minicom 12345 user 3u CHR 188,0 0t0 123 /dev/ttyUSB0这告诉我们minicom这个程序PID为12345正在使用/dev/ttyUSB0。如果你想使用这个串口就需要先关闭这个minicom会话。另一个更简洁的工具是fusersudo fuser -v /dev/ttyUSB0输出直接显示进程ID和用户USER PID ACCESS COMMAND /dev/ttyUSB0: user 12345 F.... minicom5.2 配置串口权限解决“权限被拒绝”默认情况下串口设备文件通常属于root用户和dialout组普通用户没有读写权限。这就是为什么直接运行cat /dev/ttyUSB0可能会报“Permission denied”的原因。长期解决方案将用户加入dialout组这是最推荐的方法一劳永逸。sudo usermod -a -G dialout $USER执行后必须注销当前用户并重新登录或者开启一个新的登录会话组权限变更才会生效。之后该用户就可以读写/dev/ttyUSB0等串口设备了。临时解决方案使用sudo或修改文件权限在每条命令前加sudo例如sudo minicom -D /dev/ttyUSB0。这适合偶尔操作。直接修改设备文件的权限不推荐因为设备节点可能随插拔变化sudo chmod 666 /dev/ttyUSB0这赋予了所有用户读写权限但安全性较低且下次插拔设备后可能需要重新设置。5.3 使用stty查看和配置串口参数stty命令用于查看和修改终端包括串口终端的参数。虽然它常用于交互式终端但也可以用来检查串口的基本设置。查看某个串口的当前参数stty -F /dev/ttyUSB0 -a这会输出一长串参数包括波特率speed、数据位、停止位、奇偶校验位等。例如你可能会看到speed 9600 baud。这在你使用像echo或cat这样的简单命令与串口设备通信前确认其波特率是否与目标设备匹配非常有用。一个实用技巧使用stty设置波特率进行简单测试假设你知道连接的设备波特率是115200你可以先设置本机串口参数然后尝试读取数据# 设置波特率 stty -F /dev/ttyUSB0 115200 # 尝试读取数据按CtrlC终止 cat /dev/ttyUSB06. 图形化辅助工具与脚本化实践对于习惯图形界面的用户或者需要编写自动化脚本的场景也有一些好用的方法。6.1 使用图形化设备管理器大多数Linux桌面环境都自带设备管理器或系统信息工具。GNOME桌面可以安装gnome-system-monitor或使用“磁盘”应用但更直接的是在“设置”-“关于”-“系统详情”中查看硬件。通用工具hardinfo或lshw-gtk提供了非常详细的硬件列表在“串口”或“USB”分类下可以找到串口适配器信息。sudo apt install hardinfo # Debian/Ubuntu hardinfo不过对于串口调试而言图形化工具的信息往往不如命令行工具直接和即时。6.2 编写自动化检测脚本在嵌入式产品测试或自动化运维中你可能需要脚本自动检测可用的串口。下面是一个简单的Bash脚本示例它结合了之前提到的多种方法#!/bin/bash echo \ 系统串口设备检查报告 \ echo \生成时间$(date)\ echo \\ echo \1. 当前 /dev 下的串口设备文件\ find /dev -name tty[SUA]* -type c -ls 2/dev/null | awk {print $11} echo \\ echo \2. 最近内核识别的串口设备dmesg尾部\ dmesg | grep -E \tty(S|USB|ACM)\ | tail -5 echo \\ echo \3. 检查常见串口设备是否被占用\ for port in $(find /dev -name tty[SUA]* -type c 2/dev/null); do echo -n \检查 $port: \ if sudo lsof $port /dev/null 21; then echo \已被占用\ sudo lsof $port | grep -v \^COMMAND\ | head -1 else echo \空闲\ fi done echo \\ echo \4. 关键USB串口设备信息\ for usb_port in /dev/ttyUSB* /dev/ttyACM*; do if [ -c \$usb_port\ ]; then echo \设备: $usb_port\ vendor_product$(udevadm info -q property -n \$usb_port\ 2/dev/null | grep -E \ID_VENDOR_ID|ID_MODEL_ID\ | tr \\n ) driver$(udevadm info -q property -n \$usb_port\ 2/dev/null | grep \DRIVER\) echo \ 属性: $vendor_product $driver\ fi done 2/dev/null echo \ 检查结束 \这个脚本综合了设备查找、内核日志、占用情况和udev信息运行一次就能获得比较全面的报告。你可以将其保存为check_serial.sh并赋予执行权限 (chmod x check_serial.sh)然后使用sudo ./check_serial.sh运行。7. 常见问题与排查技巧实录在实际操作中你会遇到各种各样的问题。这里记录了一些典型场景和我的解决思路。7.1 问题插入USB串口线后/dev/ttyUSB0不出现排查步骤检查物理连接换一个USB口试试排除接口故障。查看内核消息立即执行dmesg | tail。如果没有任何关于新USB设备或ftdi_sio、ch341、cp210x等驱动的信息可能是线缆或设备本身问题。检查驱动模块使用lsmod | grep usbserial查看USB串口通用驱动是否加载。再根据芯片型号检查具体驱动如lsmod | grep ch341。如果没加载尝试手动加载sudo modprobe ch341。检查设备ID如果dmesg显示了设备但没分配ttyUSB*可能是设备ID不在驱动默认支持列表中。使用lsusb命令查看设备的详细ID例如Bus 001 Device 005: ID 1a86:7523 QinHeng Electronics CH340 serial adapter。然后可以搜索该ID是否需要更新驱动或添加内核模块参数。7.2 问题可以找到设备但无法打开提示“Permission denied”解决方案确认当前用户组运行groups命令查看输出中是否有dialout或uucp组不同发行版默认组可能不同。将自己加入正确的组如sudo usermod -a -G dialout $USER然后务必注销并重新登录。临时使用sudo在调试命令前加sudo。检查udev规则高级可以创建自定义udev规则在设备插入时自动设置特定的权限和所属组。例如在/etc/udev/rules.d/99-usb-serial.rules中添加SUBSYSTEM\tty\, ATTRS{idVendor}\1a86\, ATTRS{idProduct}\7523\, GROUP\dialout\, MODE\0666\这会对特定ID的USB串口设备设置权限。修改后需重新加载udev规则sudo udevadm control --reload-rules sudo udevadm trigger。7.3 问题多个相同型号的USB串口同时插入如何区分ttyUSB0和ttyUSB1这是开发中非常常见的痛点ttyUSB0和ttyUSB1的分配可能因插入顺序或系统状态而变化导致脚本或配置失效。稳定区分方法利用物理端口信息推荐通过udevadm可以获取到设备连接的物理USB端口路径这个路径通常是稳定的例如1-1.2:1.0。udevadm info -q path -n /dev/ttyUSB0输出类似/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1.2/1-1.2:1.0/ttyUSB0/tty/ttyUSB0。其中1-1.2:1.0就是该设备在USB总线上的稳定路径。你可以编写udev规则根据这个路径创建固定的符号链接。编写udev规则创建固定别名 创建文件/etc/udev/rules.d/99-persistent-serial.rules内容示例# 根据USB端口路径将连接到特定物理端口的设备链接到固定名称 SUBSYSTEM\tty\, ATTRS{idVendor}\1a86\, ATTRS{idProduct}\7523\, KERNELS\1-1.2:1.0\, SYMLINK\ttyDeviceA\ SUBSYSTEM\tty\, ATTRS{idVendor}\1a86\, ATTRS{idProduct}\7523\, KERNELS\1-1.3:1.0\, SYMLINK\ttyDeviceB\这样无论系统分配的是ttyUSB0还是ttyUSB1你都可以通过/dev/ttyDeviceA和/dev/ttyDeviceB这两个固定的符号链接来访问设备彻底解决设备名漂移问题。7.4 问题使用screen或minicom连接串口后无法正常输入或输出乱码排查思路检查波特率等参数确保screen、minicom或picocom等工具的串口参数波特率、数据位、停止位、校验位与目标设备完全一致。一个比特的错误都会导致通信失败。检查流控尝试关闭硬件流控RTS/CTS和软件流控XON/XOFF。在minicom中可以通过CtrlA, O进入配置菜单在“Serial port setup”中关闭。在screen命令中可以添加-fn和-ixon参数尝试。退出程序姿势要正确screen会话结束后串口可能处于奇怪的状态。使用screen /dev/ttyUSB0 115200连接退出时务必按CtrlA然后输入:quit或者按CtrlA再按k然后y来杀死窗口。直接关闭终端可能导致端口锁死。如果遇到端口仍被占用可以用前面提到的fuser -k /dev/ttyUSB0强制释放。掌握从最简单的ls /dev/tty*到复杂的udev规则编写这套“组合拳”能让你在Linux下面对串口问题时游刃有余。核心在于理解Linux“一切皆文件”的设计哲学以及串口设备从硬件识别、驱动加载、节点创建到权限管理的完整链路。多动手实践遇到问题时按照“物理连接-系统识别-驱动状态-设备节点-权限与占用”这个链条逐一排查大部分问题都能迎刃而解。

相关新闻

串口与网络调试助手实战指南:从核心原理到高效应用

串口与网络调试助手实战指南:从核心原理到高效应用

1. 项目概述:调试助手,开发者的“听诊器”与“万用表”在嵌入式开发、物联网设备调试、工业控制乃至日常的网络服务测试中,我们常常需要与硬件或软件进行“对话”。这种对话,往往不是通过图形界面,而是通过最底层的字节…

2026/8/13 6:25:57 阅读更多 →
网络安全就业前景与零基础学习路线(2026版)

网络安全就业前景与零基础学习路线(2026版)

1. 网络安全行业现状与2026年就业前景2023年全球网络安全人才缺口已达340万,预计到2026年这个数字将突破400万。我入行网络安全领域8年,亲眼见证了企业安全岗位薪资从15k涨到35k的全过程。当前国内网络安全工程师平均年薪已达24.7万元(数据来…

2026/8/13 6:25:57 阅读更多 →
MacBook玩转《原神》PC版:Whisky与Wine兼容层实战教程

MacBook玩转《原神》PC版:Whisky与Wine兼容层实战教程

1. 项目概述:当MacBook遇上PC游戏作为一名长期在macOS生态里工作,却又对PC平台上的热门游戏心痒痒的用户,我太懂那种“望游兴叹”的感觉了。尤其是像《原神》这样现象级的作品,其精美的开放世界和持续更新的内容,对任何…

2026/8/13 6:25:57 阅读更多 →

最新新闻

儿童安全防护系统技术解析与应用实践

儿童安全防护系统技术解析与应用实践

1. 儿童安全防护行业的现状与挑战 儿童安全防护领域近年来正经历着前所未有的关注度提升。根据市场调研数据显示,2022年全球儿童安全产品市场规模已达到187亿美元,预计到2027年将增长至289亿美元,年复合增长率达到9.1%。在这个快速发展的行业…

2026/8/13 8:24:43 阅读更多 →
SQL Server数据字典自动化生成:系统视图查询与文档导出实战

SQL Server数据字典自动化生成:系统视图查询与文档导出实战

1. 项目概述:为什么我们需要数据字典? 在数据库开发和维护的日常工作中,我经常遇到这样的场景:接手一个历史项目,面对上百张表、上千个字段,文档却寥寥无几。开发同事跑来问:“这个 order_stat…

2026/8/13 8:24:43 阅读更多 →
Pandas窗口函数全解析:rolling与expanding的高效时序数据分析

Pandas窗口函数全解析:rolling与expanding的高效时序数据分析

1. 项目概述:为什么窗口函数是数据分析的“时间机器”刚入行做数据分析那会儿,我最头疼的就是处理那些按时间顺序排列的数据。比如,老板让我看“最近7天的日均销售额”,或者“计算每个产品上市以来累计的销量占比”。一开始我的做…

2026/8/13 8:24:43 阅读更多 →
云服务器运行Python代码全攻略:从零部署到后台运行

云服务器运行Python代码全攻略:从零部署到后台运行

1. 项目概述:为什么说“云服务器上跑Python代码其实很简单”? 很多刚接触编程或者数据分析的朋友,一听到“云服务器”、“Linux命令”、“远程部署”这些词,心里可能就有点发怵,感觉这是运维工程师或者资深开发者的领域…

2026/8/13 8:24:43 阅读更多 →
2024年Node.js安装配置全攻略:从版本管理到项目环境搭建

2024年Node.js安装配置全攻略:从版本管理到项目环境搭建

1. 项目概述:为什么Node.js的安装与配置值得你花时间? 如果你刚接触Web开发,或者准备从其他后端语言转向JavaScript全栈,那么Node.js大概率是你绕不开的一环。它早已不是那个“新潮”的技术,而是构建现代Web应用、工具…

2026/8/13 8:24:43 阅读更多 →
广州科 外贸网站建设:从传统制造到全球爆款,这5个避坑指南让你的独立站流量翻倍

广州科 外贸网站建设:从传统制造到全球爆款,这5个避坑指南让你的独立站流量翻倍

在这个生意越来越难做的年代,很多老板坐在我对面,手里攥着一杯已经凉透的茶,眉头紧锁,眼神里写满了焦虑。他们问我:“老张,为什么我的产品明明比欧美同行好,价格却压得很低,但就是拿不到那个几百万美金的大订单?明明我也做了网站,为什么谷歌搜不到?为什么询盘全是垃…

2026/8/13 8:23:43 阅读更多 →

日新闻

Visual Studio新建项目解决方案为空:系统性排查与修复指南

Visual Studio新建项目解决方案为空:系统性排查与修复指南

1. 问题现象与本质剖析如果你是一位.NET开发者,或者正准备踏入这个领域,那么Visual Studio(后面简称VS)绝对是你绕不开的伙伴。但有时候,这个伙伴会跟你开一个不大不小的玩笑:你满怀期待地点击“创建新项目…

2026/8/13 0:00:09 阅读更多 →
长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

长春建设厅网站:普通人买房办事必看的真实指南与避坑攻略

说实话,每次提起“长春建设厅网站”这几个字,我心里都挺有感触的。不是因为它有多高大上,也不是因为那里藏着什么不可告人的秘密,恰恰相反,是因为它太“接地气”了,或者说,它是咱们普通人想要在这个城市好好生活、安稳买房时,必须得翻过的一座“数据山”。很多新朋友第…

2026/8/13 0:00:09 阅读更多 →
Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案

Windows家庭版远程桌面多用户破解完整指南:RDPWrap终极解决方案 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini 你是否曾为Windows家庭版无法支持多用户远程桌面…

2026/8/13 0:00:09 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/12 1:11:09 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/12 1:11:08 阅读更多 →

月新闻

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

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

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

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

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

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

2026/8/12 1:11:10 阅读更多 →
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/11 17:09:45 阅读更多 →