Alcor6L/eLua/uart
外觀
< Alcor6L
此模組包含用於訪問 eLua CPU 序列埠 (UART) 的函式。
UART 識別符號可以是
- 0、1 等,用於物理序列埠,
uart.VUART0到uart.VUART7,如果 eLua 中啟用了虛擬 UART 支援,或者- 176,用於 USB CDC 序列埠。
設定序列埠。請注意,您不能對虛擬 UART 呼叫此函式。
baud = uart.setup( id, baud, databits, parity, stopbits )
- id - 序列埠的 ID
- baud - 序列波特率
- databits - 資料位的數量
- parity - 奇偶校驗型別,可以是
uart.PAR_EVEN、uart.PAR_ODD或uart.PAR_NONE - stopbits - 停止位的數量,可以是
uart.STOP_1、uart.STOP_1_5或uart.STOP_2
返回值
- baud - 在序列埠上設定的實際波特率。根據硬體,這可能與 baud 引數的值不同
向序列埠寫入一個或多個字串或 8 位整數(原始資料)。如果寫入原始資料,其值(由整數表示)必須在 0 到 255 之間。
uart.write( id, data1, [data2], ..., [datan] )
- id - 序列埠的 ID。
- data1 - 要寫入的第一個字串/8 位整數。
- data2 (可選) - 要寫入的第二個字串/8 位整數。
- datan (可選) - 要寫入的第 n 個字串/8 位整數。
從序列埠讀取單個字元
str = uart.getchar( id, [timeout], [timer_id] )
- id - 序列埠的 ID
- timeout (可選) - 操作的超時時間,可以是 uart.NO_TIMEOUT(非阻塞操作)或 0,uart.INF_TIMEOUT(阻塞操作),或一個正數,以微秒為單位指定超時時間。此引數的預設值為 uart.INF_TIMEOUT。
- timer_id (可選) - 用於測量超時時間的計時器的 ID。如果未指定,則預設為系統計時器。
返回值
- str - 從序列埠讀取的字元,作為字串,或在等待字元時發生的超時時的空字串。
根據格式說明符從序列埠讀取一個或多個字元
str = uart.read( id, format, [timeout], [timer_id] )
- id - 序列埠的 ID
- format - 要讀取的資料的格式。這可以是
- '*l' - 讀取直到找到換行符(\n)(\n 不返回)或超時。
- '*n' - 讀取一個整數。整數可以可選地帶符號。讀取將持續進行,直到檢測到第一個非數字字元或發生超時。這是唯一一種 read 返回數字而不是整數的情況。
- '*s' - 讀取直到找到空格字元(如空格或製表符)(空格字元不返回)或超時。
- 正數 - 在返回之前最多讀取這麼多字元(如果發生超時,讀取可能會提前停止)。
- timeout (可選) - 操作的超時時間,可以是 uart.NO_TIMEOUT(非阻塞操作)或 0,uart.INF_TIMEOUT(阻塞操作),或一個正數,以微秒為單位指定超時時間。此引數的預設值為 uart.INF_TIMEOUT。
- timer_id (可選) - 用於測量超時時間的計時器的 ID。如果未指定,則預設為系統計時器。
返回值
- str - 從序列埠讀取的資料,作為字串(或如果格式為 '*n',則作為數字)。如果發生超時,則僅返回超時前讀取的資料。如果函式在嘗試讀取第一個字元時超時,則返回空字串
設定 UART 緩衝區的大小。請注意,對虛擬 UART 呼叫此函式,bufsize = 0 是不允許的。
uart.set_buffer( id, bufsize )
- id - 序列埠的 ID
- bufsize - 緩衝區的大小(必須是 2 的冪)或 0,用於在指定的 UART 上停用緩衝。
設定 UART 上的流量控制。請注意,此函式僅適用於物理埠,如果在虛擬 UART 上呼叫它,它將返回錯誤。
uart.set_flow_control( id, type )
- id - 序列埠的 ID。
- type - 流量控制型別,可以是
uart.FLOW_NONE(無流量控制),uart.FLOW_RTS用於 RTS 流量控制,uart.FLOW_CTS用於 CTS 流量控制或uart.FLOW_RTS + uart.FLOW_CTS用於完整的 RTS/CTS 流量控制。