

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 通用 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)。 FreeRTOS 

**概觀**

通常，裝置驅動程式與基礎作業系統無關，而且是特定於指定的硬體組態。硬體抽象層 (HAL) 可提供驅動程式與更高階應用程式碼之間的通用介面。HAL 抽取了特定驅動程式運作方式的詳細資訊，並提供統一的 API 來控制這類裝置。您可以使用相同的 API，跨多個以微型控制器 (MCU) 為基礎的參考電路板存取各種裝置驅動程式。

FreeRTOS [通用 I/O](https://docs.aws.amazon.com/freertos/latest/lib-ref/common-io/index.html) 可做為此硬體抽象層。它提供了一組標準 API，用於在支援的參考電路板上存取通用序列裝置。這些通用 API 會與這些周邊裝置進行通訊和互動，並讓您的程式碼可跨平台運作。若沒有通用 I/O，編寫程式碼來使用低階裝置是矽晶廠商所特定的。

**支援的周邊裝置**
+ UART
+ SPI
+ I2C

**支援的功能**
+ 同步讀取/寫入 – 在傳輸請求的資料量之前，函數不會傳回 。
+ 非同步讀取/寫入 – 函數會立即傳回，且資料傳輸會以非同步方式進行。當動作完成時，即會叫用已註冊的用戶回呼。

**周邊裝置特定**
+ I2C – 將多個操作合併為一個交易。用來在一個交易上執行先寫入後讀取動作。
+ SPI – 在主要和次要之間傳輸資料，這表示寫入和讀取同時發生。

**移植**

如需詳細資訊，請參閱 [ FreeRTOS 移植指南](https://docs.aws.amazon.com/freertos/latest/portingguide/)。