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

1.machine.Signal 类的构造方法

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

比如下面两种不同电路连接的 MCU 控制 LED 的方案中,如果直接使用 Pin 来控制,则需要分别使用:led_pin(1), led_pin(0) 来点亮 LED

而在使用 Signal 类后,我们可以使用同一个方法(例如 led_pin(1))来控制 LED 灯的点亮而无需关注外部连接电路的差异。通过使用 Signal 类,我们可以忽略具体的物理层面中对于高低电平的区分,使得我们的程序只需要修改 Signal 类中的一些参数就可以在绝大部分外部器件电路连接方式不同的电路板中无差别运行而不会产生 BUG。

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

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

Signal 的构造函数有两种:

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

2.machine.Signal 类的其他方法

3d4998e29792.png>)

相关推荐
潘潘的嵌入式日记11 小时前
I²C 主机读到的 U16 偶尔跳变?先修复多字节快照发布
嵌入式·并发·数据一致性·i2c·快照
AAA代码批发商15 小时前
Days 46 i.MX6ULL 裸机开发|从内核切入外设,汇编点亮 LED(补充)
arm开发·嵌入式·裸机开发
嵌入式阿蔡18 小时前
嵌入式安全认证2026:PSA Certified从Arm主导到全球标准
嵌入式
阿源-1 天前
PCI 总线协议解析
嵌入式·x86·固件
2301_815091011 天前
ARM汇编入门笔记(二):启动代码、指令详解与C语言混合编程
嵌入式·arm汇编
DaTou大头1 天前
STM32第三篇
单片机·嵌入式·电路基础
纯音乐sjc1 天前
SPI 通信协议详解:从四线制到 ADXL345
面试·嵌入式
纯音乐sjc2 天前
嵌入式面试复习准备
面试·嵌入式
潘潘的嵌入式日记2 天前
位操作怎么写才不出错?置位、清位、翻转、取位一次讲清
c语言·嵌入式·寄存器·位操作
金士顿2 天前
ASP.NET Core BackgroundService 深度解析:设备后台任务到底应该怎么设计
linux·嵌入式·asp.net core·arm64