GPIO使用篇
点亮LED函数
硬件配置:
引脚配置:
K210的引脚特点:
K210分为外部I/O和内部I/O两种I/O接口模式,外部I/O表示的是硬件上固定连接好的I/O接口配置,例如本例中LED_B就连接到外部I/O中的IO12。可以根据原理图中来查看外部I/O的分配情况。原理图入下:
而内部I/O也就是我们所说的GPIO口,GPIO是直接连接到单片机芯片上的,这个是我们可以直接操作的,我们可以在GPIO口上配置模式,输入输出状态,电平等。
GPIO又分为高速 GPIO(GPIOHS) 和通用 GPIO。
在 K210 上, GPIO 有以下特征:
-
高速 GPIO:
高速 GPIO 为 GPIOHS,共 32 个。具有如下特点:
- 可配置输入输出信号
- 每个 IO 具有独立中断源
- 中断支持边沿触发和电平触发
- 每个 IO 可以分配到 FPIOA 上 48 个管脚之一
- 可配置上下拉,或者高阻
-
通用 GPIO:
通用 GPIO 共 8 个,具有如下特点:
- 8 个 IO 使用一个中断源
- 可配置输入输出信号
- 可配置触发 IO 总中断,边沿触发和电平触发
- 每个 IO 可以分配到 FPIOA 上 48 个管脚之一
最后,总结一下:硬件所连接的外部I/O只是类似一个“死的东西”,我们要配置内部I/O口“GPIO”和它相连才能够通过控制GPIO口控制硬件。
使用函数:
- fm.register(pin,function,force=False)
- GPIO(ID,MODE,PULL,VALUE)
- GPIO.value([value])
函数介绍:
https://wiki.sipeed.com/soft/maixpy/zh/api_reference/Maix/gpio.html
流程图:
代码示例:
from Maix import GPIO
from fpioa_manager import fm
#将蓝灯引脚 IO12 配置到 GPIO0,K210 引脚支持任意配置
fm.register(12, fm.fpioa.GPIO0,force=True)
LED_B = GPIO(GPIO.GPIO0, GPIO.OUT) #构建 LED 对象
LED_B.value(0) #点亮 LED
扩展函数:
- 延时模块:utime( )
https://wiki.sipeed.com/soft/maixpy/zh/api_reference/standard/utime.html
#红灯亮 1 秒
LED_R.value(0) #点亮 LED
utime.sleep(1)
LED_R.value(1) #关闭 LED