PWR485

PWR485是RS485接口,可用于与其他设备通信。

以下是主机对PWR485的支持:

主机

状态

StampPLC

UiFlow2 应用示例

回声

在 UiFlow2 中打开 stamplc_ehco_example.m5f2 项目。

此示例演示了如何利用 PWR485 接口,向发送方回显在配置的 PWR485 上收到的任何数据。

通过按下不同的键,可以发送不同的字符。

UiFlow2 代码块:

stamplc_ehco_example.png

示例输出:

None

MicroPython 应用示例

回声

此示例演示了如何利用 PWR485 接口,向发送方回显在配置的 PWR485 上收到的任何数据。

通过按下不同的键,可以发送不同的字符。

MicroPython 代码块:

 1# SPDX-FileCopyrightText: 2025 M5Stack Technology CO LTD
 2#
 3# SPDX-License-Identifier: MIT
 4
 5import os, sys, io
 6import M5
 7from M5 import *
 8from hardware import PWR485
 9from unit import ISO485Unit
10
11
12label0 = None
13pwr485_0 = None
14iso485_0 = None
15
16
17def btnA_wasClicked_event(state):  # noqa: N802
18    global label0, pwr485_0, iso485_0
19    pwr485_0.write("A")
20
21
22def btnB_wasClicked_event(state):  # noqa: N802
23    global label0, pwr485_0, iso485_0
24    pwr485_0.write("B")
25
26
27def btnC_wasClicked_event(state):  # noqa: N802
28    global label0, pwr485_0, iso485_0
29    pwr485_0.write("C")
30
31
32def setup():
33    global label0, pwr485_0, iso485_0
34
35    M5.begin()
36    label0 = Widgets.Label("label0", 69, 61, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu18)
37
38    BtnA.setCallback(type=BtnA.CB_TYPE.WAS_CLICKED, cb=btnA_wasClicked_event)
39    BtnB.setCallback(type=BtnB.CB_TYPE.WAS_CLICKED, cb=btnB_wasClicked_event)
40    BtnC.setCallback(type=BtnC.CB_TYPE.WAS_CLICKED, cb=btnC_wasClicked_event)
41
42    pwr485_0 = PWR485(
43        2,
44        baudrate=115200,
45        bits=8,
46        parity=None,
47        stop=1,
48        tx=0,
49        rx=39,
50        rts=46,
51        mode=PWR485.MODE_RS485_HALF_DUPLEX,
52    )
53    iso485_0 = ISO485Unit(
54        1,
55        port=(4, 5),
56        baudrate=115200,
57        bits=8,
58        parity=None,
59        stop=1,
60        txbuf=256,
61        rxbuf=256,
62        timeout=0,
63        timeout_char=0,
64        invert=0,
65        flow=0,
66    )
67
68
69def loop():
70    global label0, pwr485_0, iso485_0
71    M5.update()
72    if iso485_0.any():
73        label0.setText(str(iso485_0.read()))
74
75
76if __name__ == "__main__":
77    try:
78        setup()
79        while True:
80            loop()
81    except (Exception, KeyboardInterrupt) as e:
82        try:
83            from utility import print_error_msg
84
85            print_error_msg(e)
86        except ImportError:
87            print("please update to latest firmware")

示例输出:

None

MicroPython 应用示例

API参考

PWR485 类

class hardware.pwr485.PWR485(id, **kwargs)

基类:object

构造给定 id 的 PWR485 对象。

PWR485 类继承了 UART 类,更多详细信息请参阅 hardware.UART

UiFlow2 代码块:

init.png

MicroPython 代码块:

from hadrware import PWR485

pwr485_0 = PWR485(2, baudrate=115200, bits=8, parity=None, stop=1, tx=0, rx=39, rts=46, mode=PWR485.MODE_RS485_HALF_DUPLEX)