- 开机: 长按返回键2s开机,显示左侧Logo+右侧'Starting...'开机画面2秒 - 关机: 主页未连接接收机时长按返回键2s关机 - 关闭OLED/LED/PWM/NRF24L01/USB/外设时钟 → STOP休眠 - 唤醒后自动复位重启 - 已连接接收机时屏蔽关机,防止飞行中误操作 - 添加 Input_IsKeyHeldFor() 指定时长按键检测 - 添加 OLED_Off() 关闭显示 - 更新 README.md 文档
119 lines
3.1 KiB
Markdown
119 lines
3.1 KiB
Markdown
# 萝莉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
|
||
|
||
### 编译
|
||
```bash
|
||
cd LoliRC
|
||
make
|
||
```
|
||
|
||
### 烧录
|
||
使用STM32CubeProgrammer或OpenOCD烧录生成的hex/bin文件。
|
||
|
||
## UI操作说明
|
||
|
||
### 开机
|
||
- 长按返回键约2秒开机
|
||
- 显示开机画面: 左侧为开机Logo,右侧居中显示"Starting..."
|
||
- 开机画面持续2秒后进入主页
|
||
|
||
### 主页
|
||
- 显示各通道当前值
|
||
- 长按OK键进入高频头配置
|
||
- 长按BACK键切换值/回传显示
|
||
- 短按OK键进入主菜单
|
||
|
||
### 关机
|
||
- 在主页(未连接接收机时)长按返回键2秒关机
|
||
- 关机流程: 关闭OLED → 关闭LED → 停止PWM → 关闭NRF24L01 → 关闭USB → 关闭外设时钟 → 进入STOP休眠模式
|
||
- 唤醒后自动复位重启
|
||
- **注意**: 当遥控器已连接到接收机时,长按返回键不会关机,防止飞行中误操作
|
||
|
||
### 主菜单
|
||
1. Model Select - 模型选择/新建/编辑/删除
|
||
2. RF Config - 高频头配置
|
||
3. Channel Map - 通道映射
|
||
4. Mixer - 混控设置
|
||
5. PWM Driver - PWM输出配置
|
||
6. Home Settings - 主页设置
|
||
|
||
## 默认配置
|
||
|
||
- NRF24L01频道: 60
|
||
- 数据速率: 2Mbps
|
||
- 对频短语: "LOVE"
|
||
|
||
## 许可证
|
||
|
||
MIT License
|