Pyboard 板上搭载了 4 颗 LED,可以直接使用 pyb.LED(i).on() 或是 pyb.LED(i).off() 命令控制 LED 的亮灭状态,那假如 LED 是接到其他的 GPIO 管脚的话那该如何控制呢?我的第一个实验就是将板子的 Y1 到 Y8 管脚外接 8 颗 LED 做流水灯的控制。板上的 LED 是使用高电位点亮的架构,也就是当 MCU 管脚输出高电位时点亮 LED。
而我实验所使用的外接 LED 板是低电位控制的架构,也就是当 MCU 管脚输出低电位时才点亮 LED。查询了 MCU 的 Datasheet,如下图所示不管是高电位驱动或是低电位驱动管脚都有 25mA 的驱动能力,因此直接连接 LED 是没有问题的。
[代码请见阅读原文]
功能是将 Y1 到 Y8 管脚设定为 open-drain 的输出模式,依 Pyboard 的处理方式当设定为输出模式后该管脚是输出低电位的状态,因此在程序开始运行之后所有的 LED 一开始都是点亮的状态,这表示 GPIO