基于 STM32F103 (Cortex-M3) 的双摇杆无线遥控器固件(Keil MDK 工程),可配合四轴飞行器、平衡车等 NRF24L01 接收端设备使用。
| 模块 | 接口 | 作用 |
|---|---|---|
| MCU | STM32F103 | 主控(Cortex-M3) |
| 摇杆 ×2 | ADC1 / ADC2(PA0~PA3) | 4 通道摇杆采集,原始 0 |
| NRF24L01 | SPI | 2.4GHz 无线发送摇杆与姿态数据 |
| MPU6050 | I2C2 | 六轴姿态传感器,姿态角映射为 -100~100 的 Pitch/Roll 值 |
| OLED | 显示实时通道值 / 姿态 |
remote/
├── Core/ # HAL 初始化 + 主循环(CubeMX 生成区,USER CODE 外勿手改)
│ └── Src/main.c # 摇杆采集、姿态解算、NRF24L01 发送、OLED 刷新
├── Drivers/
│ ├── BSP/ # 板级驱动:MPU6050、NRF24L01、OLED、按键
│ └── CMSIS/ # CMSIS 内核文件
└── MDK-ARM/ # Keil MDK 工程文件(*.uvprojx)
- ADC 读取 4 路摇杆(LH/LV/RH/RV)→ 归一化为 -100~100
- MPU6050 读取姿态角 → 映射为 PitchVal / RollVal(-100~100)
- 打包数据经 NRF24L01 发送给接收端
- OLED 实时刷新显示
# 编译(Keil 命令行)
"/d/Keil5/UV4/UV4.exe" -b MDK-ARM/<工程>.uvprojx -j0 -o /tmp/keil.log
# 烧录(pyocd + CMSIS-DAP/ST-Link)
pyocd flash -t stm32f103c8 <固件>.hex注意:
Core/下除USER CODE区域外的文件由 CubeMX 生成,硬件改动请走 CubeMX 重新生成,业务逻辑写在Drivers/或 USER CODE 区。
- stm32-flight-controller — 四轴飞控(含遥控器接收端)