

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 常见 I/O
<a name="common-io"></a>

**重要**  <a name="deprecation-message-library"></a>
此库托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时，我们建议[从此处开始](freertos-getting-started-modular.md)。如果您已经有一个基于现已 Amazon-FreeRTOS 弃用的存储库的 FreeRTOS 项目，请参阅。[Amazon-FreeRTOS Github 存储库迁移](github-repo-migration.md)

**概述**

通常，设备驱动程序独立于基础操作系统，并且特定于给定的硬件配置。硬件抽象层 (HAL) 提供了驱动程序和更高级别的应用程序代码之间的通用接口。HAL 提取出特定驱动程序的工作原理的详细信息，并提供一个统一的 API 来控制此类设备。您可以使用相同的 API 跨多个基于微控制器 (MCU) 的参考板来访问各种设备驱动程序。

FreeRTO [S I/O](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) 通常充当这个硬件抽象层。它提供了一组标准 API，用于在受支持的参考板上访问常用串行设备。这些通用 API 与外围设备进行通信和交互，可让您的代码跨平台运行。没有共同之处 I/O，编写与低级设备配合使用的代码是特定于芯片供应商的。

**支持的外围设备**
+ UART
+ SPI
+ I2C

**支持的功能**
+ 同步 read/write -在传输请求的数据量之前，该函数不会返回。
+ 异步 read/write — 函数立即返回，数据传输以异步方式进行。在此操作完成后，将调用已注册用户回调。

**外围设备特定的**
+ I2C – 将多个操作合并到一个事务中。用于在一个事务中依次执行写入操作和读取操作。
+ SPI – 在主设备和辅助设备之间传输数据，这意味着写入操作和读取操作会同时进行。

**移植**

有关更多信息，请参阅[《FreeRTOS 移植指南》](https://docs.aws.amazon.com/freertos/latest/portingguide/)。