Key 按键
1.实验目的
通过本实验,掌握以下技能:
- 理解 FPIOA 的作用和使用方法
- 掌握 GPIO 引脚输入与输出的配置方式
- 实现通过两个按键控制 LED 灯的点亮和熄灭
2.原理解析
K230 的引脚功能是通过 FPIOA(灵活外设输入输出阵列)模块进行配置的,用户可以将任意物理引脚映射为所需功能,例如 GPIO 输入/输出、UART、PWM 等。
本实验中:
- 使用 FPIOA 将引脚 52 设置为 GPIO 输出,连接 LED;
- 使用 FPIOA 将引脚 46 和 47 设置为 GPIO 输入,接入两个按键;
- 按下 GPIO46,点亮 LED;
- 按下 GPIO47,熄灭 LED。
我们可以通过查看原理图看到两个按键连接的GPIO。

按键在硬件上的位置:

3.代码解析
from machine import Pin, FPIOA
- 从
machine模块中导入Pin和FPIOA类。 Pin用于操作 GPIO 引脚(设置输入、输出、读取电平等)FPIOA用于将物理引脚映射到不同的功能(例如普通 GPIO、UART、PWM 等)
import time
- 导入
time模块,用于延时(如消抖或避免主循环过快)
fpioa = FPIOA()
- 创建一个
FPIOA实例对象,用来配置引脚映射关系。
设置 LED 引脚功能(多个)
io_pins = [5, 13, 12, 33, 2, 28, 26]
for pin_num in io_pins:
gpio_func = getattr(FPIOA, f'GPIO{pin_num}')
fpioa.set_function(pin_num, gpio_func)
- 定义 LED 使用的物理引脚列表
io_pins。 - 遍历每个引脚号,通过
getattr动态获取对应的 GPIO 功能常量(例如FPIOA.GPIO5)。 - 调用
fpioa.set_function()将物理引脚映射为同号的 GPIO 功能。
设置按键引脚功能(多个)
key_pins = [14, 18, 29, 27]
for pin_num in key_pins:
gpio_func = getattr(FPIOA, f'GPIO{pin_num}')
fpioa.set_function(pin_num, gpio_func)
- 定义按键使用的物理引脚列表
key_pins。 - 同样为每个按键引脚映射为对应的 GPIO 功能。
实例化 LED 对象(多个)
leds = []
for pin_num in io_pins:
led = Pin(pin_num, Pin.OUT, pull=Pin.PULL_NONE, drive=7)
led.value(1) # 初始熄灭(高电平熄灭,假设低电平点亮)
leds.append(led)
- 创建空列表
leds存储 LED 对象。 - 遍历 LED 引脚号:
- 创建
Pin对象,设置为 输出模式(Pin.OUT),无上下拉(Pin.PULL_NONE),驱动能力7(最大)。 - 初始输出高电平
1(熄灭),因为假设 LED 低电平点亮。 - 将对象添加到
leds列表。
- 创建
实例化按键对象(多个)
keys = []
for pin_num in key_pins:
key = Pin(pin_num, Pin.IN, Pin.PULL_UP)
keys.append(key)
- 创建空列表
keys存储按键对象。