在支持实时的应用程序中使用 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。 自述文件提供详细信息和说明。