告别硬件差异!MicroPython Signal 类:让你的 GPIO 代码跨板运行无压力

1.machine.Signal 类的构造方法

Signal 类是对 Pin 类的进一步封装,通过 Signal 类我们可以设置是否对某个引脚的逻辑进行反向(简单来说,原先我们设置高电平为逻辑 1、低电平为逻辑 0,对其进行反向后,可以设置高电平为逻辑 0、低电平为逻辑 1),从而在逻辑上将控制与实际的物理量分离。

比如下面两种不同电路连接的 MCU 控制 LED 的方案中,如果直接使用 Pin 来控制,则需要分别使用:led_pin(1), led_pin(0) 来点亮 LED
432a76ff-1903-41e9-9e53-ab9a48cb7747.png
而在使用 Signal 类后,我们可以使用同一个方法(例如 led_pin(1))来控制 LED 灯的点亮而无需关注外部连接电路的差异。通过使用 Signal 类,我们可以忽略具体的物理层面中对于高低电平的区分,使得我们的程序只需要修改 Signal 类中的一些参数就可以在绝大部分外部器件电路连接方式不同的电路板中无差别运行而不会产生 BUG。

Signal 类适用于以下应用场景:

  • 输出高低电平控制外部传感器​,例如:软件实现 PWM 驱动电机、蜂鸣器或 LED 灯、控制数码管的亮灭、控制继电器的开合
  • 读取外部传感器发送的高低电平​,例如:读取按键是否按下,干簧管、红外传感器、湿度/火焰传感器的数字输出

Signal 的构造函数有两种:

  • 通过将所需的 Pin 参数直接传递给 Signal 构造函数,无需创建中间 Pin 对象。需要注意的是,该方法不一定所有开发板都适用!
    image.png
  • 通过包装现有的 Pin 对象(该方法所有开发板都适用):
    image.png

2.machine.Signal 类的其他方法

image.png

posted @ 2026-08-31 11:17  FreakStudio  阅读(7)  评论(0)    收藏  举报