在支持实时的应用程序中使用 GPIO

重要

这是 Azure Sphere(旧版)文档。 Azure Sphere(旧版)将于 2027 年 9 月 27 日停用,用户此时必须迁移到 Azure Sphere(集成)。 使用位于 TOC 上方的版本选择器查看 Azure Sphere(集成)文档。

Azure Sphere 支持 GPIO(常规用途输入/输出)。 GPIO 是集成电路上一类可编程的数字引脚。 GPIO 没有预定义的功能,其行为可以通过应用程序进行自定义。 GPIO 的一些常见用途包括:更改硬件设备的状态、控制 LED、读取开关的状态。

本主题介绍如何在支持实时的应用程序 (RTApp) 中使用 GPIO。 有关如何在高级应用程序中使用 GPIO 的信息,请参阅在高级应用程序中使用 GPIO

RTApp 可以使用 Azure Sphere 设备上的任何 GPIO。 GPIO 支持以下操作:

  • 读取输入
  • 将输出设置为高或低
  • 轮询软件中断

注意

Azure Sphere OS 在启动时不重置外围设备。 应用程序应确保外围设备在启动时和重启后处于已知良好状态。

MT3620 对实时内核上的 GPIO 的支持

在 MT3620 上,大多数 GPIO 以四个块的形式映射到实时核心,从 GPIO 0 开始;但是,ISU 块 0 - 4 有五个 GPIO。 因此,如果高级应用程序(或另一个 RTApp)请求同一个块中的 GPIO,则 RTApp GPIO 请求可能会失败。 例如,如果高级应用程序请求 GPIO 8 且 RTApp 请求 GPIO 9,则第二个应用在部署时返回错误。

MT3620 RDB 上的每个 LED 都映射到三个 GPIO:红色、绿色和蓝色通道各一个。

有关注册基址、中断号、时钟速率、采样频率以及有关 MT3620 的其他详细信息,请参阅 MT3620 数据表MT3620 M4 用户手册;如果问题仍然存在,可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。

GPIO 要求

应用程序代码需要用于识别 GPIO 及其寄存器的方法。 可在制造商的硬件文档中找到寄存器基址。 在 RTApp 可以使用 GPIO 之前,它必须初始化要使用的块。 对于应用使用的每个块,仅需初始化一次。

有关 MT3620 的详细信息,请参阅 MT3620 对实时核心上的 GIO 的支持。

应用程序清单设置

若要使用 GPIO,RTApp 必须在应用程序清单的“功能”部分将其列出。 通过使用目标硬件的 JSON 文件中为其定义的“AppManifestValue”来标识 GPIO。 例如,以下行保留 GPIO 8 和 12:

"Capabilities": {
 "Gpio": [ 8, 12 ]
}

GPIO 示例应用程序

GPIO 示例演示如何在 RTApp 中使用 GPIO。 自述文件提供详细信息和说明。