萝莉3代遥控器 (Loli3 RC)

基于STM32F103RBT6的开源航模遥控器固件。

硬件配置

  • MCU: STM32F103RBT6 (Cortex-M3, 128KB Flash, 20KB RAM)
  • 显示屏: SSD1306 128x64 OLED (硬件I2C, PB10/PB11)
  • 按键: 4个 (PB12/PB13/PB14/PB15: 上/下/确认/返回)
  • 输入: 16个ADC通道 (PC0-PC3, PA0-PA7, PC4-PC5, PB0-PB1)
  • 无线: NRF24L01+ (SPI: PB3/PB4/PB5, CE: PB7, CSN: PB6, IRQ: PD2)
  • PWM输出: 2路 (PB8/PB9)
  • LED: 3个 (PC6/PC7/PC8)
  • 串口: UART1 (PA9/PA10), UART3 (PC10/PC11)
  • USB: USB虚拟串口/Joystick (PA11/PA12)

功能特性

1. 多模型支持

  • 支持最多10个模型配置
  • 模型类型选择 (固定翼/车/船/多轴)
  • 每个模型独立的通道映射、混控配置

2. 通道系统

  • 16个输入通道支持ADC或按键自动识别
  • 每个通道可设置: 端点、反向、曲线
  • 8个可编程混控

3. 无线协议

  • NRF24L01+ 2.4G无线 (默认)
  • 支持CRFS协议 (后续实现)
  • 自动对频功能

4. UI界面

  • 主页值显示/回传显示
  • 完整的菜单系统
  • 中文支持

5. 特色功能

  • PWM输出可配置为: WS2812 LED / 普通LED / 振动
  • USB虚拟Joystick功能
  • 回传数据显示

项目结构

LoliRC/
├── Makefile           # 编译脚本
├── README.md          # 说明文档
└── src/
    ├── main.c         # 主程序
    ├── config.h       # 硬件配置
    ├── hal.h/.c       # HAL抽象层
    ├── oled.h/.c      # OLED驱动
    ├── key.h/.c       # 按键驱动
    ├── adc.h/.c       # ADC驱动
    ├── led.h/.c       # LED驱动
    ├── nrf24l01.h/.c  # NRF24L01驱动
    ├── eeprom.h/.c    # EEPROM存储
    ├── model.h/.c     # 模型配置管理
    ├── ui.h/.c        # UI界面系统
    ├── pwm.h/.c       # PWM输出驱动
    ├── ui/
    │   └── README.md  # UI设计说明
    └── WordStock.h    # 字库

编译与烧录

依赖

  • arm-none-eabi-gcc
  • OpenOCD 或 STM32CubeProgrammer

编译

cd LoliRC
make

烧录

使用STM32CubeProgrammer或OpenOCD烧录生成的hex/bin文件。

UI操作说明

主页

  • 显示各通道当前值
  • 长按OK键进入高频头配置
  • 长按BACK键切换值/回传显示
  • 短按OK键进入主菜单

主菜单

  1. Model Select - 模型选择/新建/编辑/删除
  2. RF Config - 高频头配置
  3. Channel Map - 通道映射
  4. Mixer - 混控设置
  5. PWM Driver - PWM输出配置
  6. Home Settings - 主页设置

默认配置

  • NRF24L01频道: 60
  • 数据速率: 2Mbps
  • 对频短语: "LOVE"

许可证

MIT License

Description
炸天控
Readme MIT 13 MiB
Languages
C 97.9%
Assembly 1.9%
C++ 0.2%