onewire --- 1-Wire 匯流排協定¶
onewire 模組實作了 1-Wire 匯流排主控協定,可用於諸如 DS18x20 溫度感測器等裝置。它使用單一個設定為開汲極(open-drain)的 machine.Pin,與共用匯流排上的一個或多個從屬裝置進行通訊。
範例::
from machine import Pin
from onewire import OneWire
ow = OneWire(Pin("P7"))
devices = ow.scan()
for rom in devices:
print(rom)
類別¶
- class onewire.OneWire(pin: machine.Pin)¶
在指定的
machine.Pin上建構一個 1-Wire 匯流排主控端。該接腳會自動設定為附帶提升電阻(pull-up)的開汲極模式。ROM 命令常數:
- MATCH_ROM: int¶
比對 ROM 命令(
0x55)。由select_rom()內部使用,依 64 位元 ROM 代碼定址特定裝置。
匯流排重設:
- reset(required: bool = False) bool¶
在匯流排上發出重設脈衝。若至少有一個從屬裝置以存在脈衝(presence pulse)回應,則回傳
True,否則回傳False。若 required 為True且沒有任何裝置回應,則引發OneWireError。
位元/位元組 I/O:
裝置定址:
- select_rom(rom: bytes | bytearray) None¶
先發出重設,接著發出 MATCH ROM 命令,以定址其 64 位元 ROM 代碼存放於 rom(8 位元組緩衝區)中的裝置。
循環冗餘檢查:
例外¶
- exception onewire.OneWireError¶
在 1-Wire 操作失敗時引發。目前由
OneWire.reset()在 required 為True且沒有從屬裝置回應重設脈衝時引發。