基于 K210 开发板 LCD 显示图片

举报
William 发表于 2025/05/13 09:26:14 2025/05/13
【摘要】 基于 K210 开发板 LCD 显示图片介绍 (Introduction)Kendryte K210 是一款集成了高性能 RISC-V 双核处理器和 KPU (Kendryte Processing Unit) 人工智能处理单元的 AIoT (AI + IoT) 芯片。它具有强大的 AI 推理能力,同时拥有丰富的硬件外设接口,包括 SPI、I2C、UART、GPIO 等,常用于机器视觉、语音...

基于 K210 开发板 LCD 显示图片

介绍 (Introduction)

Kendryte K210 是一款集成了高性能 RISC-V 双核处理器和 KPU (Kendryte Processing Unit) 人工智能处理单元的 AIoT (AI + IoT) 芯片。它具有强大的 AI 推理能力,同时拥有丰富的硬件外设接口,包括 SPI、I2C、UART、GPIO 等,常用于机器视觉、语音识别等应用。

许多基于 K210 的开发板都会配套或支持连接小型 LCD 屏幕。LCD 屏幕是嵌入式系统中重要的输出外设,可以用于显示设备状态、用户界面、传感器数据,以及在 AI 视觉应用中显示摄像头画面和推理结果(如目标检测框、识别标签)。

本指南将详细介绍在 K210 开发板上通过 LCD 屏幕显示图片的方法,包括其技术背景、实现原理、环境准备以及使用 MaixPy 的代码示例。

引言 (Foreword/Motivation)

在 K210 这样的嵌入式 AIoT 平台上进行图像显示,与在 PC 或手机上显示图片有很大不同。嵌入式系统通常资源有限(RAM、Flash 空间、CPU 性能),也没有独立的强大 GPU。直接加载和处理大型、复杂格式(如 JPEG, PNG)的图片并以高帧率显示,对资源是巨大的挑战。

因此,在嵌入式系统中显示图片通常需要:

  1. 选择合适的图片格式: 倾向于简单、易于解析或直接就是原始像素数据的格式。
  2. 针对硬件进行优化: 根据 LCD 控制器的特性和接口(如 SPI 速度、像素格式)进行数据传输优化。
  3. 使用高效的驱动库: 硬件供应商或社区提供的底层驱动库,能够将上层指令快速转换为硬件可识别的信号。

在 K210 平台上,特别是使用 MaixPy 环境,这些底层细节被 MaixPy SDK 封装,提供了相对友好的 API,使得在 LCD 上显示图片变得更加便捷。

技术背景 (Technical Background)

  1. K210 芯片: 双核 64 位 RISC-V CPU,最高主频可达 400MHz (可超频)。内置 KPU 用于卷积神经网络计算。片上 SRAM。通常搭配外部 SPI Flash 和可能有的 SD 卡槽。
  2. LCD 屏幕: 嵌入式设备常用小尺寸 LCD,通过控制器芯片驱动,如 ST7789V, ILI9341 等。
    • 接口: 通常使用 SPI (Serial Peripheral Interface) 或 8/16 位并行接口。SPI 接口线少,但速度相对慢;并行接口速度快,但需要的 GPIO 引脚多。K210 开发板常用 SPI 接口连接 LCD。
    • 像素格式: 常见的有 RGB565 (每个像素 16 位,红绿蓝各占 5, 6, 5 位) 和 RGB888 (每个像素 24 位)。嵌入式中 RGB565 更常见,因为它占用空间和带宽更小。
  3. 图像格式:
    • BMP: 结构简单,常用于嵌入式,但文件通常较大(无损压缩或无压缩)。
    • JPEG: 压缩率高,但解析需要解码库,对嵌入式 CPU 是负担。
    • PNG: 无损压缩,支持透明度,解析复杂,不常用于资源受限的嵌入式直接显示。
    • 原始像素数据: 直接就是按 LCD 像素格式排列的图像数据,无头部信息,解析最快。常将图片转换成这种格式后存储在 Flash 或头文件中。
  4. 嵌入式开发环境:
    • K210 C SDK: Kendryte 官方提供的 C 语言开发包,可以进行裸机开发或基于 FreeRTOS。需要 RISC-V GCC 工具链。提供底层驱动 API。
    • MaixPy: 基于 MicroPython 的 K210 开发环境。封装了底层硬件驱动,提供了 Python API,包括图像处理 (image 模块) 和 LCD 控制 (lcd 模块)。开发效率高。

应用使用场景 (Application Scenarios)

  • AI 视觉推理结果显示: 将摄像头画面在 LCD 上实时显示,并在画面上叠加目标检测框、识别文字、分类标签等。
  • 设备状态界面: 显示设备的连接状态、工作模式、传感器读数,并配有图标或简单图形。
  • 交互式控制面板: 提供带图形界面的简单操作菜单。
  • 本地预览: 在 AI 视觉应用中,作为摄像头捕获画面的本地预览屏幕。
  • 简易游戏或动画: 在资源允许范围内实现简单的图形应用。

原理解释 (Principle Explanation)

在 K210 上通过 LCD 显示图片的核心原理是:将图像数据准备成 LCD 控制器能识别的像素格式,然后通过 LCD 驱动库,将像素数据和控制命令传输给 LCD 控制器芯片,由控制器负责在 LCD 面板上显示。

  1. 图像数据准备:
    • 如果图片存储为 BMP 或 JPEG 文件,需要使用相应的解码库在 K210 上进行解码,得到原始的像素矩阵数据(例如 RGB888 或 RGB565 格式)。MaixPy 的 image 模块内置了解码能力。
    • 如果图片是预处理过的原始像素数据(例如,离线工具将图片转换成适合 LCD 分辨率和像素格式的 .bin 文件或 C 语言数组),可以直接加载到内存。
  2. LCD 驱动:
    • LCD 驱动库(在 MaixPy 中是 lcd 模块底层C代码)负责与特定的 LCD 控制器芯片进行低层次的通信。
    • 初始化:驱动需要初始化 LCD 控制器,包括设置显示方向、亮度、接口模式等。
    • 设置显示区域:在绘制图像前,驱动会发送命令给控制器,指定图像要显示的屏幕区域(左上角和右下角的像素坐标)。
    • 传输像素数据:驱动将准备好的图像像素数据流通过 SPI 或并行接口发送给 LCD 控制器。
  3. LCD 控制器:
    • 控制器接收驱动发送的命令和像素数据。
    • 它将接收到的像素数据写入到其内部的帧缓冲区(或直接更新 LCD 面板的显存)。
    • 控制器不断扫描帧缓冲区,并根据像素数据控制 LCD 面板上的每个像素的亮度和颜色,最终呈现出图像。
  4. 硬件接口: K210 的 SPI 或 GPIO 外设作为硬件接口,负责将电信号(时钟、数据、命令/数据选择、片选等)传输给 LCD 控制器。

核心特性 (Core Features - of K210 LCD usage)

  • 硬件接口支持: K210 具备 SPI 和 GPIO,可直接连接 LCD 控制器。
  • 底层驱动: SDK 或 MaixPy 提供了针对常见 LCD 控制器的驱动库。
  • 图像模块: MaixPy 的 image 模块提供了方便的图像加载、处理和格式转换功能。
  • 像素格式和分辨率限制: 受限于 LCD 硬件和 K210 的内存/处理能力。
  • 帧缓冲区: 有些 LCD 控制器有内置帧缓冲区,有些依赖外部存储或实时传输。MaixPy 的 lcd.display() 通常会将图像数据处理好后直接传输。

原理流程图以及原理解释 (Principle Flowchart)

(此处无法直接生成图形,用文字描述核心流程图)

图示:K210 上 LCD 显示图片流程 (以 MaixPy 为例)

+---------------------+       +---------------------+       +---------------------+       +---------------------+       +---------------------+       +---------------------+
|   图片文件 (Flash/SD) | ----> |   MaixPy image 模块 | ----> |  原始像素数据 (RAM)  | ----> |    MaixPy lcd 模块  | ----> | K210 SPI/GPIO 硬件 | ----> | LCD 控制器芯片 ST7789V | ----> |       LCD 面板      |
| (BMP, JPEG, Raw)    |       | (加载, 解码, 格式转换)|       | (例如: RGB565)      |       |  (底层驱动调用)     |       | (传输电信号)       |       | (接收命令, 像素数据) |       | (显示图像)          |
+---------------------+       +---------------------+       +---------------------+       +---------------------+       +---------------------+       +---------------------+

原理解释:

  1. 图片文件: 需要显示的图片文件存储在 K210 可访问的存储介质上,如 SPI Flash 或 SD 卡。
  2. MaixPy image 模块: 在 Python 代码中,使用 image.Image("...") 加载图片文件。MaixPy 的 image 模块负责读取文件内容,进行解码(如果是 JPEG/BMP 等格式),并将其转换为 K210 内部能处理的原始像素数据格式,存储在 RAM 中。
  3. 原始像素数据: 解码后的图像像素数据以特定的格式(如 RGB565)存储在内存中,这是 LCD 驱动库期望的输入格式。
  4. MaixPy lcd 模块: 使用 lcd.display(img) 等函数,调用 MaixPy 的 lcd 模块。这个模块的底层是 C 语言编写的针对 K210 硬件和特定 LCD 控制器的驱动。
  5. 底层驱动调用: lcd 模块的底层驱动接收到像素数据和显示指令,它会:
    • 设置 LCD 控制器的显示窗口(例如,显示整个屏幕)。
    • 将原始像素数据通过硬件接口传输给 LCD 控制器。
  6. K210 SPI/GPIO 硬件: K210 芯片上的 SPI 外设或 GPIO 引脚组按照时序将电信号发送给 LCD 控制器。
  7. LCD 控制器芯片: 控制器接收到像素数据流和命令,将数据写入其内部显存,并控制 LCD 面板的像素点发光或改变颜色。
  8. LCD 面板: 根据控制器的数据显示出最终的图像。

核心特性 (Core Features)

(同上,此处略)

环境准备 (Environment Setup)

使用 MaixPy 在 K210 上显示图片:

  1. K210 开发板和 LCD 屏幕: 确保您的开发板(如 Sipeed Maixduino, Maix Bit, Maix Go, Kendryte K210 Official Board 等)已连接或集成了 SPI 或并行 LCD 屏幕,并确认型号兼容。
  2. USB 连接线: 用于连接开发板到电脑供电和烧录程序。
  3. 串口驱动: 安装开发板 USB 转串口芯片(如 CH340 或 CP210x)的驱动程序,以便电脑能识别到开发板的串口。
  4. MaixPy IDE 或兼容工具:
    • MaixPy IDE: Sipeed 官方推荐的 IDE,集成了代码编辑、烧录、串口终端、文件上传等功能。从 Sipeed 的 GitHub 仓库或其他渠道获取。
    • uPyCraft, Thonny: 其他支持 MicroPython/CircuitPython 的 IDE,也可以连接 MaixPy 板。
  5. MaixPy 固件: 需要将 MaixPy 固件烧录到 K210 开发板的 SPI Flash 中。固件文件通常在 Sipeed 官方资料或 GitHub 仓库中提供。烧录工具也通常随 IDE 提供。
  6. 待显示的图片文件: 准备一张图片文件(例如 .jpg.bmp 格式),分辨率最好不要超过 LCD 屏幕的分辨率,以避免在 K210 上进行复杂的缩放。

不同场景下详细代码实现 & 代码示例实现 (Detailed Code Examples & Code Sample Implementation)

以下是使用 MaixPy 在 K210 的 LCD 上显示图片的完整 Python 代码示例。

# main.py (保存在 K210 开发板的 Flash 或 SD 卡中,通常命名为 main.py 会在启动时自动运行)

import lcd # 导入 LCD 模块
import image # 导入 image 模块
import time # 导入 time 模块

# --- LCD 初始化 ---
# 根据你的开发板型号和连接的 LCD 类型进行初始化
# 通常是 lcd.init(type=lcd.XXX, freq=YYY, ...)
# type: lcd.TFT, lcd.OLED 等
# freq: SPI 通信频率,例如 15000000 (15MHz)
# 这里的参数需要查阅你的开发板资料或 MaixPy 文档
try:
    # 示例参数,根据你的板子调整!
    # 例如 Sipeed Maix Bit 带 TFT 1.3寸屏幕
    # lcd.init(type=lcd.TFT, freq=15000000, spi=1, cs=36, dc=37, rs=38, width=240, height=240, bgr=True)

    # 示例参数,根据你的板子调整!
    # 例如 Sipeed Maixduino 带 TFT 2.4寸屏幕 (ST7789)
     lcd.init(freq=15000000) # MaixPy 会尝试自动检测一些常用屏幕类型

    print("LCD 初始化成功")
    lcd.clear(lcd.WHITE) # 初始化后清屏为白色
except Exception as e:
    print(f"LCD 初始化失败: {e}")
    # 如果初始化失败,后续操作可能会出错
    while True:
        time.sleep(1) # 初始化失败则停止,避免无限重启
# --- 图片文件路径 ---
# 确保你的图片文件已经上传到 K210 的 Flash 文件系统 或 放在 SD 卡中
# 例如,上传一个名为 "test.jpg" 的图片文件到板载文件系统根目录
image_path = "/flash/test.jpg" # 如果图片在板载 Flash 中
# image_path = "/sd/test.jpg" # 如果图片在 SD 卡中
# --- 加载图片 ---
try:
    # image.Image() 函数加载图片
    # 支持多种格式,如 JPEG, BMP, GIF 等,MaixPy 会自动解码
    img = image.Image(image_path)
    print(f"图片加载成功: {image_path}")

except Exception as e:
    print(f"图片加载失败: {e}")
    # 如果图片加载失败,显示错误信息在终端或屏幕上
    lcd.draw_string(0, 0, "Image load failed!", lcd.RED, lcd.WHITE)
    while True:
        time.sleep(1) # 加载失败则停止
# --- 显示图片 ---
# image.Image 对象是一个包含图片数据和信息的容器
# lcd.display() 函数可以将 image 对象显示到 LCD 屏幕上
# 如果 image 对象的尺寸与 LCD 不匹配,MaixPy 会尝试进行缩放以适应屏幕
# 如果 image 对象的尺寸小于 LCD,会显示在左上角
# 可以使用 img.resize(), img.cut() 等方法进行预处理

# 完整屏幕显示
lcd.display(img)
print("图片已显示到 LCD 屏幕")
# --- 其他显示图片的方式 (可选) ---

# 显示图片到指定位置 (左上角坐标)
# lcd.display(img, x=50, y=50)

# 显示图片的一部分 (裁剪后显示)
# cropped_img = img.cut(10, 10, 100, 100) # 从 (10,10) 开始裁剪 100x100 区域
# lcd.display(cropped_img, x=50, y=50) # 将裁剪后的部分显示到 (50,50)
# --- 保持程序运行,持续显示图片 ---
# MicroPython 程序执行到末尾会自动退出
# 通常在一个无限循环中保持程序运行,以便屏幕持续显示或处理其他任务
while True:
    # 在这里可以添加其他逻辑,例如按钮检测、传感器读取、AI 推理等
    # 如果你只需要显示静态图片,这个循环可以很空
    # 如果需要显示动态内容(如摄像头画面),就需要在这个循环中不断捕获新帧并调用 lcd.display()
    # print("程序运行中...") # 可以打印心跳信息
    time.sleep(1) # 避免无限循环占用过多 CPU

运行结果 (Execution Results)

  1. 确保 K210 开发板已烧录 MaixPy 固件,并且您的代码已上传到板载 Flash 或 SD 卡中(通常命名为 main.py)。同时,将您希望显示的图片文件(例如 test.jpg)也上传到代码指定的路径(例如 /flash//sd/)。
  2. 给 K210 开发板上电或重启。
  3. 观察 LCD 屏幕: 开发板启动后,如果代码正常运行,您会看到 LCD 屏幕上显示出您上传的图片。如果图片尺寸与屏幕不符,可能会被缩放或显示在左上角(取决于 lcd.display() 的具体调用方式和 MaixPy 版本)。
  4. 观察串口终端: 通过 MaixPy IDE 或其他串口工具连接到开发板的串口,您会看到代码中打印的日志信息,如“LCD 初始化成功”、“图片加载成功”、“图片已显示到 LCD 屏幕”等。如果出现错误,错误信息也会打印在串口。

测试步骤以及详细代码 (Testing Steps and Detailed Code)

测试图片显示主要包括确认图片是否成功加载、是否成功显示在屏幕上以及显示效果是否符合预期。

  1. 环境设置: 确保您已按照“环境准备”部分搭建好 MaixPy 开发环境,并能通过串口连接到开发板。
  2. 代码编写与上传: 将上述 Python 代码保存为 main.py。在代码中:
    • 修改 LCD 初始化参数: 根据您的开发板型号和 LCD 屏幕型号,查阅资料,修改 lcd.init() 中的 type, freq 等参数,确保 LCD 能被正确识别和初始化。
    • 修改图片路径:image_path 变量修改为您的图片文件在 K210 文件系统中的实际路径。
    • 使用 MaixPy IDE 或 uPyCraft/Thonny 将 main.py 文件和您的图片文件上传到 K210 开发板的 Flash 或 SD 卡中。
  3. 烧录固件并运行代码: 如果是首次使用或更新 MaixPy,需要先烧录固件。然后重启开发板,main.py 通常会自动运行。或者在 IDE 中连接板子,选择运行 main.py
  4. 观察 LCD 屏幕: 这是最直接的测试方法。
    • 验证初始化: 观察屏幕是否从黑色或其他初始状态变为清屏颜色(例如白色)。
    • 验证图片加载和显示: 确认您上传的图片是否完整、清晰地显示在屏幕上。
    • 验证位置和尺寸 (如果非全屏显示): 如果您使用了 lcd.display(img, x, y) 或裁剪后显示,检查图片是否出现在预期的位置和尺寸。
  5. 串口日志检查:
    • 步骤: 连接串口终端,观察代码中 print() 输出的日志。
    • 验证: 确认“LCD 初始化成功”、“图片加载成功”、“图片已显示到 LCD 屏幕”等信息按顺序打印。如果出现错误,根据错误信息进行排查(如图片文件路径错误、格式不支持、LCD 初始化参数错误等)。
  6. 测试不同图片格式和尺寸:
    • 步骤: 准备不同格式(如 .bmp, .jpg)和不同尺寸的图片文件。修改 image_path 变量,上传新的图片文件到 K210,重启或重新运行代码。
    • 验证: 确认 MaixPy 是否能成功加载和显示这些不同格式和尺寸的图片。注意观察图片缩放的效果(如果图片尺寸与屏幕不匹配)。
    • 代码: 准备 test.bmp, large_image.jpg, small_image.jpg 等文件,分别修改 image_path = "..." 进行测试。

部署场景 (Deployment Scenarios)

在 K210 开发板上实现 LCD 图片显示,其代码的部署方式主要包括:

  1. 固件打包部署: 对于使用 K210 C SDK 开发的应用,编译生成的二进制文件会和驱动一起烧录到 K210 的 SPI Flash 中。图片数据如果量小且固定,可以作为 C 数组嵌入到程序中一起烧录;如果量大或需要更新,可以存放在 SPI Flash 的特定区域或外部 SD 卡中,程序运行时再加载。
  2. MaixPy 脚本文件部署:
    • 烧录到 Flash: 将 Python 脚本文件(如 main.py)和图片文件通过 IDE 工具烧录到 K210 的 SPI Flash 文件系统中。重启开发板即可运行。
    • 存放到 SD 卡: 将 Python 脚本和图片文件复制到 SD 卡中,插入到带有 SD 卡槽的 K210 开发板。配置 MaixPy 启动时从 SD 卡加载脚本。
  3. 作为产品一部分: 烧录好程序和资源(图片)的 K210 开发板,作为最终产品(如智能门锁、人脸识别门禁、工业控制面板)的核心模块,连接 LCD 屏幕对外提供功能和显示信息。

疑难解答 (Troubleshooting)

  1. LCD 屏幕无显示或花屏:
    • 问题: LCD 初始化失败;硬件连接问题;驱动参数错误。
    • 排查:
      • 检查硬件连接: 确保 LCD 排线与开发板连接牢固且方向正确。
      • 检查供电: 确保开发板和 LCD 供电正常。
      • 检查初始化参数: MaixPy 的 lcd.init() 参数(特别是 type, freq, spi, cs, dc, rs 等引脚配置)必须与你的开发板和 LCD 硬件完全匹配。查阅开发板资料或联系供应商确认正确的初始化参数。
      • 检查驱动是否安装: 确保 MaixPy 固件中包含了对应 LCD 控制器的驱动。
      • 检查焊接: 如果是自己连接的 LCD 模块,检查焊接是否良好。
  2. 图片加载失败:
    • 问题: image.Image() 抛出异常。
    • 排查:
      • 检查文件路径: 确保 image_path 变量指向的文件在 K210 上实际存在,且路径拼写正确(注意 Flash 和 SD 卡的路径前缀,如 /flash//sd/)。
      • 检查文件格式: 确保图片文件是 MaixPy 支持的格式(JPEG, BMP 等)。
      • 检查文件是否损坏: 尝试在电脑上打开图片文件,确认未损坏。
      • 检查 Flash/SD 卡空间: 确保存储图片的空间足够。
  3. 图片显示异常 (颜色失真、方向错误):
    • 问题: 像素格式转换错误;LCD 初始化参数错误(如 RGB/BGR 顺序);图片分辨率与屏幕不匹配导致缩放效果差。
    • 排查:
      • 检查 lcd.init() 参数: 特别是 bgr 参数,它控制像素的 BGR 顺序。常见的屏幕是 RGB 顺序,有些是 BGR,需要根据屏幕硬件设置正确。
      • 检查图片格式: 确保 MaixPy 正确解码了图片格式。如果可能,尝试将图片转换为标准的 RGB565 或 RGB888 BMP 文件再上传测试。
      • 图片缩放: 如果图片分辨率与屏幕不一致,MaixPy 会自动缩放,可能导致失真。尽量使用与屏幕分辨率一致或成比例的图片。
  4. 程序运行一段时间后崩溃或异常:
    • 问题: 内存泄漏;处理大图片导致内存不足;在循环中处理过于复杂的图像操作。
    • 排查: 优化代码,避免在循环中频繁创建大的 image 对象。检查 K210 的内存使用情况。处理大图片时,考虑分块处理或使用更高效的图像库。

未来展望 (Future Outlook)

  • 更强大的片上 GPU: 未来更高端的嵌入式 AI 芯片可能会集成更强大的 GPU,提供硬件加速的图形渲染能力,支持更复杂的 UI 和动画。
  • 更高分辨率/色深 LCD 支持: 随着技术发展,嵌入式设备将支持更高质量的显示输出。
  • 嵌入式 GUI 框架: 出现更成熟、更易用的嵌入式 GUI 框架,简化复杂界面的开发。
  • 图像处理硬件加速: 芯片可能集成硬件加速单元用于图像解码、缩放、格式转换等,减轻 CPU 负担。

技术趋势与挑战 (Technology Trends 和 Challenges)

技术趋势:

  • AIoT 融合: AI 能力与 IoT 设备结合,需要在设备端提供更智能、更直观的交互界面。
  • 低功耗图形: 在电池供电的边缘设备上实现图形显示,需要考虑功耗优化。
  • 端侧推理与显示结合: 将 AI 推理结果直接在设备端可视化。
  • 统一的嵌入式图形 API: 厂商或社区可能推动建立更统一的嵌入式图形开发标准。

挑战:

  • 资源限制: 如何在有限的 RAM、Flash、CPU 性能下实现流畅、高质量的图形显示。
  • 驱动兼容性: 适配市场上众多型号和接口的 LCD 屏幕和控制器。
  • 图形处理性能: 在没有强大 GPU 的情况下,高效实现图像解码、缩放、旋转、合成等操作。
  • 内存管理: 处理大图片或复杂图形对象时的内存开销和管理。
  • 工具链和生态: 嵌入式图形开发的工具和资源相对 PC 端匮乏。
  • 功耗管理: 图形显示通常是耗电大户,如何在显示性能和功耗之间取得平衡。

总结 (Conclusion)

在 K210 开发板上通过 LCD 屏幕显示图片,是进行嵌入式 AI 视觉应用开发的基础步骤之一。利用 MaixPy 提供的 lcdimage 模块,可以相对便捷地实现图片加载和显示功能。核心原理是将图片文件转换为适合 LCD 的原始像素数据,并通过底层的 SPI/并行驱动传输给 LCD 控制器。

尽管相比 PC 开发,嵌入式环境存在资源限制和硬件适配的挑战,但通过合理的图片预处理、选择高效的驱动以及利用 MaixPy 等高层 API,可以有效地在 K210 这样的平台上实现图像显示需求。掌握 LCD 初始化参数、图片文件路径和格式,以及串口日志排查方法,是成功实践的关键。随着 AIoT 的发展,端侧图形显示能力将越来越重要,相关的技术和工具也将不断进步。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。