在高階應用程式中使用 UART

Azure 球體支援用於串列通訊的通用非同步接收器 (UART) 。 UART 是一種整合回路類型,可用來透過電腦或周邊裝置上的序列埠傳送和接收資料。 UART 廣泛使用,並以其簡單性而出名。 不過,與 SPII2C不同,UART 不支援多個部屬裝置。

注意

本主題說明如何在高階應用程式中使用 UART。 如需 RTApps 中 UART 使用的相關資訊,請參閱 在支援即時的應用程式中使用介面 設備。

Azure 球體高層級應用程式可以呼叫 Applibs UART API來與 UART 通訊。 UART_HighLevelApp範例示範如何在 MT3620 裝置上與 UART 通訊。

UART 需求

與 UART 通訊的應用程式必須包含適當的頁首檔案,並將 UART 設定新增至 應用程式資訊清單

所有應用程式都必須 設定其目標硬體 ,並包含對應的硬體定義頁首檔案。

頁首檔案

 #define UART_STRUCTS_VERSION 1
 #include <applibs/uart.h>
 #include "path-to-your-target-hardware.h"

UART_STRUCTS_VERSION在包含頁首檔案之前,請先宣告前置程式定義。 這會指定應用程式使用的結構版本。

將「path-to-your-target-hardware.h」取代為硬體頁首檔案的路徑。

應用程式資訊清單設定

應用程式資訊清單中的 UART 設定會列出應用程式存取的 UART。 一次只能使用一個 UART。 若要設定這些設定,請將功能 Uart 新增至應用程式資訊清單,然後將每個 UART 新增至該功能。 Azure 球體應用程式資訊清單 具有更多有關應用程式資訊清單的詳細資料。

在程式碼中,使用為硬體定義的常數來識別 UART。 當您建立應用程式時,編譯器會將這些值翻譯成原始值。

例如,以下是針對 MT3620 參考開發面板 (RDB) ,並在 MT3620 上設定兩個 UART 的應用程式資訊清單摘要。

"Uart": [ "$MT3620_RDB_HEADER2_ISU0_UART", "$MT3620_RDB_HEADER4_ISU1_UART" ],

下列摘要說明如何在針對 Avnet MT3620 Starter Kit的應用程式中指定相同的 UART:

"Uart": [ "$AVNET_MT3620_SK_ISU0_UART", "$AVNET_MT3620_SK_ISU1_UART" ],

設定和開啟 UART

在執行 UART 操作之前,您必須先設定設定並開啟 UART。 當您開啟 UART 時,會傳回一個檔案描述,讓您可以傳遞到可在 UART 上執行作業的函數。

若要設定設定,請呼叫 UART_InitConfig函 數初始化 UART_Config結構 。 初始化UART_Config指示之後,您可以變更指示中的 UART 設定。

若要開啟 UART 並套用設定,請呼叫 UART_Open 函數,並傳遞UART_Config指示。

在 UART 上執行讀取和寫入作業

您可以使用 POSIX 函數,在 UART 上執行讀取和寫入作業。 若要在 UART 上執行讀取作業,請呼叫已讀取 () 函數。 若要在 UART 上執行寫入作業,請呼叫寫入 () 函數。

關閉 UART

若要關閉 UART,請呼叫 POSIX 函數關閉 () 。

MT3620 支援

本節說明只有在 MT3620 上執行 Azure 球體時才適用的 UART 選項。

MT3620 的 UART 規格列在 MT3620 支援狀態中。 MT3620 開發面板使用者指南說明針腳配置和連接功能。

Microsoft Azure 球體 SDK 安裝目錄中的 [HardwareDefinitions] 資料夾包含常見 Azure 球體開發面板、模組和晶片的定義。 它包含可定義 MT3620、MT3620 RDB 主介面以及其他 MT3620 硬體的頁首和 JSON 檔案。 HardwareDefinitions 資料夾的預設位置是在 C:\Program Files (x86)\Microsoft Azure Sphere SDK\Hardware Definitions Windows 和 /opt/azurespheresdk/HardwareDefinitions Linux 上。

支援下列 UART 設定。 8N1 (8 個數據位、1 個停止位,且沒有同位) 為預設設定:

  • 當您設定 MT3620 開發人員面板時,您可以使用任何 ISU 埠做為 UART 介面。 當您使用 ISU 埠做為 UART 介面時,您無法使用與 I2C 或 SPI 介面相同的埠。
  • baud rate: 1200, 2400, 4800, 9600, 19200、38400、57600、115200、230400、460800、500000、576000、921600、1000000、1152000、1500000 及 2000000。
  • 資料位:5、6、7 和 8。
  • 停止位:1 和 2。
  • 同位:奇數、偶數和無。
  • 流程式控制制模式:RTS/CTS、XON/XOFF,而且沒有流程式控制制。
  • 硬體會獲得緩衝:32 位元組。

在高階應用程式中使用 UART 時,5 個可用的 ISU 周邊區塊圖釘中,只會使用 4 個。 相同高階應用程式可以使用未使用的 PIN 碼做為 GPIO PIN 碼。 如需可重複用於 GPIO 的未使用 ISU PIN 清單,請參閱 I/O 介面 設備。