Add core firmware modules: input, menu, NRF24L01, OLED, protocol, PWM, storage + UI assets

This commit is contained in:
root
2026-06-25 22:55:41 +08:00
parent 97ab93e93d
commit 5c0ff0ce63
22 changed files with 3671 additions and 17 deletions

98
Core/Inc/config.h Normal file
View File

@@ -0,0 +1,98 @@
/*****************************************************************
* 萝莉3代遥控器 - 硬件引脚配置
* MCU: STM32F103RBT6 (LQFP64)
*
* 引脚编码: (port << 8) | pin
* port: 0=GPIOA, 1=GPIOB, 2=GPIOC, 3=GPIOD
* pin: 0-15
*
* 示例: PA0=0x000, PB1=0x101, PC2=0x202
*****************************************************************/
#ifndef CONFIG_H
#define CONFIG_H
/* ================================================================
* ADC 输入引脚 (16通道)
* ADC_IN0~15 可在 OLED 菜单中配置映射通道、混控
* 支持自动检测按键/ADC 输入类型
* ================================================================ */
#define ADC_IN0 0x200 /* PC0 - ADC12_IN10 */
#define ADC_IN1 0x201 /* PC1 - ADC12_IN11 */
#define ADC_IN2 0x202 /* PC2 - ADC12_IN12 */
#define ADC_IN3 0x203 /* PC3 - ADC12_IN13 */
#define ADC_IN4 0x000 /* PA0 - ADC12_IN0 */
#define ADC_IN5 0x001 /* PA1 - ADC12_IN1 */
#define ADC_IN6 0x002 /* PA2 - ADC12_IN2 */
#define ADC_IN7 0x003 /* PA3 - ADC12_IN3 */
#define ADC_IN8 0x004 /* PA4 - ADC12_IN4 */
#define ADC_IN9 0x005 /* PA5 - ADC12_IN5 */
#define ADC_IN10 0x006 /* PA6 - ADC12_IN6 */
#define ADC_IN11 0x007 /* PA7 - ADC12_IN7 */
#define ADC_IN12 0x204 /* PC4 - ADC12_IN14 */
#define ADC_IN13 0x205 /* PC5 - ADC12_IN15 */
#define ADC_IN14 0x100 /* PB0 - ADC12_IN8 */
#define ADC_IN15 0x101 /* PB1 - ADC12_IN9 */
/* ================================================================
* OLED 屏幕 (128x64 SSD1306, 硬件 I2C)
* ================================================================ */
#define OLED_SDA 0x10B /* PB11 - I2C2_SDA */
#define OLED_SCL 0x10A /* PB10 - I2C2_SCL */
/* ================================================================
* 操作按键 (上拉输入, 按下低电平)
* 上/下/确认/返回
* 确认长按 -> 高频头配置页
* 返回长按 -> 主页值/回传切换
* ================================================================ */
#define KEY_IN1 0x10C /* PB12 - 上 */
#define KEY_IN2 0x10D /* PB13 - 下 */
#define KEY_IN3 0x10E /* PB14 - 确认/菜单 */
#define KEY_IN4 0x10F /* PB15 - 返回/回传 */
/* ================================================================
* PWM 输出 (TIM4 CH3/CH4)
* 可配置为: WS2812 / LED 呼吸灯 / 振动电机
* ================================================================ */
#define PWM_OUT1 0x108 /* PB8 - TIM4_CH3 */
#define PWM_OUT2 0x109 /* PB9 - TIM4_CH4 */
/* ================================================================
* LED 状态指示灯
* LED_OUT1: 系统状态 - 开机常亮
* LED_OUT2: NRF24L01 状态 - 未连接慢闪/配对快闪/已连接常亮
* LED_OUT3: CRFS 状态 - 未连接慢闪/配对快闪/已连接常亮
* ================================================================ */
#define LED_OUT1 0x206 /* PC6 */
#define LED_OUT2 0x207 /* PC7 */
#define LED_OUT3 0x208 /* PC8 */
/* ================================================================
* NRF24L01+ 2.4G 无线模块 (硬件 SPI1)
* 默认开启,可在 OLED 菜单中关闭
* ================================================================ */
#define NRF24L01_CE 0x107 /* PB7 - 输出 */
#define NRF24L01_CSN 0x106 /* PB6 - 输出 (SPI 片选) */
#define NRF24L01_SCK 0x103 /* PB3 - SPI1_SCK */
#define NRF24L01_MOSI 0x105 /* PB5 - SPI1_MOSI */
#define NRF24L01_MISO 0x104 /* PB4 - SPI1_MISO */
#define NRF24L01_IRQ 0x302 /* PD2 - 外部中断 */
/* ================================================================
* 串口
* UART1: 可选接收外部 SBUS 信号 (OLED 菜单中开启)
* UART3: 发送 CRFS 信号 (OLED 菜单中开启)
* ================================================================ */
#define RX1 0x00A /* PA10 - USART1_RX */
#define TX1 0x009 /* PA9 - USART1_TX */
#define RX3 0x20B /* PC11 - USART3_RX */
#define TX3 0x20A /* PC10 - USART3_TX */
/* ================================================================
* USB (虚拟 HID Joystick)
* 连接电脑自动识别为飞行模拟器外设
* ================================================================ */
#define USB_DM 0x00B /* PA11 - USB_DM */
#define USB_DP 0x00C /* PA12 - USB_DP */
#endif /* CONFIG_H */