跳到主要内容

板配置

备注

我们希望从编译时配置转向运行时配置。

构建 GP2040-CE 的板有两种简单的方法。您可以编辑现有的板定义,或者创建自己的定义。仓库的 configs 文件夹中包含了几个示例配置。本文档将概述如何设置新的构建配置。

板配置文件夹

configs 中的每个子文件夹包含一个独立的板配置,具体包括以下内容:

名称必须?描述
BoardConfig.h用于为特定控制器/板构建 GP2040-CE 的配置文件。包含初始 GPIO 引脚映射、LED 配置等。
README.md提供与此板配置相关的信息。新板配置的拉取请求必须包含此文件。必须包含主引脚映射配置。建议还包含到您仓库的链接和图片。
assets/包含在 README.md 中的资产文件夹。构建过程不需要。
<boardname.h>以板命名的板定义文件,用于 Pico SDK 配置板特定的 SDK 功能。Pico 示例

BoardConfig.h

BoardConfig.h 文件中需要以下板选项:

名称描述
BOARD_CONFIG_LABEL您的板的名称。
GPIO_PIN_X您希望的动作的 GPIO 引脚。将 X 替换为 GPIO 引脚编号,然后分配给 GpioAction:: 动作。

创建 configs/NewBoard/BoardConfig.h 并添加您的引脚配置和选项。以下是一个最低要求的 BoardConfig.h 文件示例:

// BoardConfig.h

#ifndef PICO_BOARD_CONFIG_H_
#define PICO_BOARD_CONFIG_H_

#include "enums.pb.h"
#include "class/hid/hid.h"

#define BOARD_CONFIG_LABEL "New Board"

// Main pin mapping Configuration
// // GP2040 | Xinput | Switch | PS3/4/5 | Dinput | Arcade |
#define GPIO_PIN_19 GpioAction::BUTTON_PRESS_UP // UP | UP | UP | UP | UP | UP |
#define GPIO_PIN_18 GpioAction::BUTTON_PRESS_DOWN // DOWN | DOWN | DOWN | DOWN | DOWN | DOWN |
#define GPIO_PIN_17 GpioAction::BUTTON_PRESS_RIGHT // RIGHT | RIGHT | RIGHT | RIGHT | RIGHT | RIGHT |
#define GPIO_PIN_16 GpioAction::BUTTON_PRESS_LEFT // LEFT | LEFT | LEFT | LEFT | LEFT | LEFT |
#define GPIO_PIN_08 GpioAction::BUTTON_PRESS_B1 // B1 | A | B | Cross | 2 | K1 |
#define GPIO_PIN_07 GpioAction::BUTTON_PRESS_B2 // B2 | B | A | Circle | 3 | K2 |
#define GPIO_PIN_06 GpioAction::BUTTON_PRESS_R2 // R2 | RT | ZR | R2 | 8 | K3 |
#define GPIO_PIN_05 GpioAction::BUTTON_PRESS_L2 // L2 | LT | ZL | L2 | 7 | K4 |
#define GPIO_PIN_12 GpioAction::BUTTON_PRESS_B3 // B3 | X | Y | Square | 1 | P1 |
#define GPIO_PIN_11 GpioAction::BUTTON_PRESS_B4 // B4 | Y | X | Triangle | 4 | P2 |
#define GPIO_PIN_10 GpioAction::BUTTON_PRESS_R1 // R1 | RB | R | R1 | 6 | P3 |
#define GPIO_PIN_09 GpioAction::BUTTON_PRESS_L1 // L1 | LB | L | L1 | 5 | P4 |
#define GPIO_PIN_15 GpioAction::BUTTON_PRESS_S1 // S1 | Back | Minus | Select | 9 | Coin |
#define GPIO_PIN_13 GpioAction::BUTTON_PRESS_S2 // S2 | Start | Plus | Start | 10 | Start |
#define GPIO_PIN_21 GpioAction::BUTTON_PRESS_L3 // L3 | LS | LS | L3 | 11 | LS |
#define GPIO_PIN_22 GpioAction::BUTTON_PRESS_R3 // R3 | RS | RS | R3 | 12 | RS |
#define GPIO_PIN_14 GpioAction::BUTTON_PRESS_A1 // A1 | Guide | Home | PS | 13 | ~ |
#define GPIO_PIN_20 GpioAction::BUTTON_PRESS_A2 // A2 | ~ | Capture | ~ | 14 | ~ |

#endif