跳轉到內容

Alcor6L/eLua/pio

來自華夏公益教科書,開放的書籍,開放的世界


此模組包含用於訪問 CPU 的 PIO(可程式設計輸入輸出)引腳的函式。它包含兩組具有相同名稱和行為的函式。一組對用於訪問埠中單個引腳的函式進行分組,另一組對用於訪問完整埠的函式進行分組。

使用 pio 模組,您可以指定埠名稱,如在您的 eLua 的 CPU 資料手冊中所示。例如,如果您的 CPU 的埠名為 PA、PB 和 PC,則可以使用 pio.PApio.PBpio.PC 分別引用它們。如果您的 CPU 使用 P0、P1、P2 而不是 PA、PB 和 PC,您可以簡單地使用 pio.P0pio.P1pio.P2 代替。

您還可以引用單個引腳而不是埠。使用與上面相同的符號,pio.PA_0 指的是埠 PA 的第一個引腳,pio.P0_15 指的是埠 P0 的第 16 個引腳,依此類推。

pio.pin.setdir

[編輯 | 編輯原始碼]

設定引腳方向

pio.pin.setdir( direction, pin1, pin2, ..., pinn )
  • pio.pin.setdir( direction, pin1, pin2, ..., pinn )
  • direction - 引腳方向,可以是 pio.INPUTpio.OUTPUT
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:無。

pio.pin.setpull

[編輯 | 編輯原始碼]

在指定的引腳上啟用/停用上拉/下拉

pio.pin.setpull( type, pin1, pin2, ..., pinn )
  • type - 'pull' 型別,可以是 pio.PULLUP 來啟用上拉,pio.PULLDOWN 來啟用下拉,或者 pio.NOPULL 來停用上拉和下拉
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:無。

pio.pin.setval

[編輯 | 編輯原始碼]

設定引腳值

pio.pin.setval( value, pin1, pin2, ..., pinn )
  • value - 引腳值,可以是 0 或 1
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:無。

pio.pin.getval

[編輯 | 編輯原始碼]

獲取引腳值

val1, val2, ..., valn = pio.pin.getval( pin1, pin2, ..., pinn )
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:引腳的價值,0 或 1

pio.pin.sethigh

[編輯 | 編輯原始碼]

將引腳設定為 1(高電平)

pio.pin.sethigh( pin1, pin2, ..., pinn )
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:無。

pio.pin.setlow

[編輯 | 編輯原始碼]

將引腳設定為 0(低電平)

pio.pin.setlow( pin1, pin2, ..., pinn )
  • pin1 - 第一個引腳
  • pin2 (可選) - 第二個引腳
  • pinn (可選) - 第 n 個引腳

返回:無。

pio.port.setdir

[編輯 | 編輯原始碼]

設定埠方向

pio.port.setdir( direction, port1, port2, ..., portn )
  • direction - 埠方向,可以是 pio.INPUT 或 pio.OUTPUT
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:無。

pio.port.setpull

[編輯 | 編輯原始碼]

在指定的埠上啟用/停用上拉/下拉

pio.port.setpull( type, port1, port2, ..., portn )
  • type - 'pull' 型別,可以是 pio.PULLUP 來啟用上拉,pio.PULLDOWN 來啟用下拉,或者 pio.NOPULL 來停用上拉和下拉
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:無。

pio.port.setval

[編輯 | 編輯原始碼]

設定埠值

pio.port.setval( value, port1, port2, ..., portn )
  • value - 埠值
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:無。

pio.port.getval

[編輯 | 編輯原始碼]

獲取埠值

val1, val2, ..., valn = pio.port.getval( port1, port2, ..., portn )
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:埠的價值

pio.port.sethigh

[編輯 | 編輯原始碼]

將埠設定為全 1(高電平)

pio.port.sethigh( port1, port2, ..., portn )
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:無。

pio.port.setlow

[編輯 | 編輯原始碼]

將埠設定為全 0(低電平)

pio.port.setlow( port1, port2, ..., portn )
  • port1 - 第一個埠
  • port2 (可選) - 第二個埠
  • portn (可選) - 第 n 個埠

返回:無。

pio.decode

[編輯 | 編輯原始碼]

將 PIO 資源號轉換為相應的埠和引腳。這最常用於 GPIO 邊緣中斷例程,將 Lua 中斷例程的引數轉換為引起中斷的埠和引腳,但它也可以用於從引腳名稱 pio.PA_0、pio.P2_15 等返回的值。

port, pin = pio.decode( resnum )
  • resnum - 引腳的資源號

返回

  • port - 埠的索引,從 0 開始(因此埠 A 為 0,埠 B 為 1,依此類推)
  • pin - 引腳號,通常從 0 到 31
華夏公益教科書