GPIO 的使用
GPIO 引脚分配
GPIO Pin 分布
SPI | PWM | I2C | LCD | GPIO NUM | NAME | PIN | PIN | NAME | GPIO NUM | UART | LCD | PWM | SPI |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
N/A | +3.3V | 1 | 2 | +5V | N/A | ||||||||
I2C_SDA | 58 | GPIO58 | 3 | 4 | +5V | N/A | |||||||
I2C_SCL | 57 | GPIO57 | 5 | 6 | GND | N/A | |||||||
55 | GPIO55 | 7 | 8 | GPIO5 | 5 | UART_TX | |||||||
N/A | GND | 9 | 10 | GPIO6 | 6 | UART_RX | |||||||
42 | GPIO42 | 11 | 12 | GPIO38 | 38 | LCD_HSYNC | |||||||
43 | GPIO43 | 13 | 14 | GND | N/A | ||||||||
47 | GPIO47 | 15 | 16 | GPIO54 | 54 | ||||||||
N/A | +3.3V | 17 | 18 | GPIO51 | 51 | ||||||||
SPI_MOSI | 52 | GPIO52 | 19 | 20 | GND | N/A | |||||||
SPI_MISO | 53 | GPIO53 | 21 | 22 | GPIO50 | 50 | |||||||
SPI_SCLK | 48 | GPIO48 | 23 | 24 | GPIO49 | 49 | |||||||
N/A | GND | 25 | 26 | GPIO56 | 56 | ||||||||
45 | GPIO45 | 27 | 28 | GPIO40 | 40 | ||||||||
LCD_VSYNC | 37 | GPIO37 | 29 | 30 | GND | N/A | |||||||
LCD_DE | 39 | GPIO39 | 31 | 32 | GPIO46 | 46 | PWM0 | ||||||
PWM1 | 59 | GPIO59 | 33 | 34 | GND | N/A | |||||||
63 | GPIO63 | 35 | 36 | GPIO36 | 36 | LCD_CLK | |||||||
60 | GPIO60 | 37 | 38 | GPIO61 | 61 | ||||||||
N/A | GND | 39 | 40 | GPIO44 | 44 |
如果需要引脚复用,可参考:https://milkv.io/zh/docs/mars/getting-started/gpio_full_multiplexing
配置GPIO
- 执行以下操作配置GPIO:
以 GPIO44 为例。
$ cd /sys/class/gpio
$ echo 44 | sudo tee export
可以运行命令 ls /sys/class/gpio
,列出 GPIO 目录,检查是否出现 gpio44,确认导出成功。
提示
命令中的 44 为 NAME 编号,对应 GPIO44
- 设置 GPIO 的方向
运行命令 echo "out" | sudo tee gpio44/direction
,将 GPIO44 方向设置为输出。
运行命令 echo "in" | sudo tee gpio44/direction
,将 GPIO44 方向设置为输入。
可以通过运行命令 cat gpio44/direction
,来查看设置的方向。
- 设置 GPIO44 的电压
运行命令 echo "1" | sudo tee gpio44/value
,将 GPIO44 的电压设置为高电平。
运行命令 echo "0" | sudo tee gpio44/value
,将 GPIO44 的电压设置为低电平。
可以通过命令 cat gpio44/value
,来查看设置的值。