点亮一个GPIO灯
在这篇文章中,我们将通过一个简单的示例来学习如何用 MicroPython 控制 GPIO 引脚点亮一个 LED 灯。
1.硬件电路
- LED 的正极(长脚)连接到开发板的一个 GPIO 引脚(如 GPIO33)
- LED 的负极(短脚)通过电阻接地(GND)
我们可以通过查看开发板原理 图,可知:

LED灯在开发板中的位置:

当GPIO5、GPIO13、GPIO12、GPIO33、GPIO2、GPIO28、GPIO26为高电平时,上面红框中LED灯会被点亮。
2.实验解析
FPIOA 是 K230 的一项功能,它允许你将某个物理引脚动态配置为 UART、I2C、SPI、PWM、GPIO 等多种功能之一。每个引脚同一时刻只能映射为一个功能,但用户可以自由选择映射方式。
这意味着你可以:
- 把 UART 的 TX/RX 映射到你希望的任意引脚;
- 把 PWM 输出映射到靠近电机的引脚;
- 或者,像我们这篇文章的例子一样,把一个 GPIO 功能映射到指定引脚,来点亮一个灯。
导入模块
from machine import FPIOA, Pin
import time
FPIOA:用于配置芯片引脚的功能映射,可将物理引脚映射为 GPIO、UART、I2C 等。Pin:用于控制具体 GPIO 引脚的方向、输出值、上拉/下拉等。time:提供延时函数(如sleep_ms())。
构造函数
fpioa = FPIOA()
- 实例化一个
FPIOA对象,后续使用该对象设置引脚功能。
设置引脚功能(多个引脚)
io_pins = [2, 5, 12, 13, 26, 28, 33]
for pin_num in io_pins:
gpio_func = getattr(FPIOA, f'GPIO{pin_num}')
fpioa.set_function(pin_num, gpio_func)
io_pins:定义要控制的物理引脚列表(按从左到右顺序)。getattr(FPIOA, f'GPIO{pin_num}'):动态获取FPIOA.GPIO2、FPIOA.GPIO5等常量。fpioa.set_function(pin_num, gpio_func):将每个物理引脚映射到对应的 GPIO 功能。
实例化 Pin 对象用于控制 LED(多个)
led_pins = []
for pin_num in io_pins:
pin = Pin(pin_num, Pin.OUT, pull=Pin.PULL_NONE, drive=7)
pin.value(1) # 初始熄灭(低电平点亮假设)
led_pins.append(pin)
Pin(pin_num, Pin.OUT, pull=Pin.PULL_NONE, drive=7):- 将已映射的引脚设置为输出模式。
pull=Pin.PULL_NONE:无内部上下拉。drive=7:最大驱动电流。
pin.value(1):初始输出高电平,LED 熄灭(假设低电平点亮)。led_pins.append(pin):保存每个引脚对象,便于后续循环控制。