Skip to content

Commit d95243f

Browse files
committed
add inav_netpx4_first_version
1 parent 91ee5b8 commit d95243f

1 file changed

Lines changed: 110 additions & 0 deletions

File tree

source/_posts/INAV_NxtPX4.md

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
title: INAV_NxtPx4
3+
date: 2025-04-14 17:12:21
4+
tags: 硬件,四轴
5+
6+
7+
---
8+
9+
# INAV_NxtPx4
10+
11+
为基于STM32H743VIH6主控的新飞控板适配INAV固件,需要结合硬件设计与INAV固件的开发框架进行定制化配置。以下是适配的核心步骤及注意事项:
12+
13+
---
14+
15+
### **一、开发环境搭建**
16+
1. **获取INAV源码**
17+
从GitHub克隆INAV仓库,切换到支持H7系列的最新分支(如INAV 8.0及以上版本)。
18+
19+
```bash
20+
git clone https://github.com/INAVFlight/inav.git
21+
```
22+
23+
2. **配置工具链**
24+
安装ARM GCC编译工具链(如`gcc-arm-none-eabi`),并确保CMake版本兼容。H743需支持STM32H7系列的编译配置。
25+
26+
---
27+
28+
### **二、硬件描述文件配置**
29+
INAV通过`target`目录下的硬件描述文件定义飞控板的资源分配,需基于现有类似型号(如MATEKF405或官方支持的H743型号)进行修改:
30+
1. **创建新目标目录**
31+
`src/main/target`下新建目录(如`CUSTOM_H743`),复制相近型号的配置文件(如`target.h``target.c``CMakeLists.txt`)。
32+
33+
2. **主控芯片定义**
34+
`CMakeLists.txt`中指定主控型号,例如:
35+
```cmake
36+
target_stm32h743xx(CUSTOM_H743)
37+
```
38+
39+
3. **引脚与外设映射**
40+
- **LED与蜂鸣器**:定义状态指示灯和蜂鸣器引脚。
41+
```c
42+
#define LED0 PC13
43+
#define BEEPER PB8
44+
```
45+
- **SPI/I2C总线**:配置传感器接口。例如双IMU(如BMI270、ICM-42688)需指定SPI总线及片选引脚:
46+
```c
47+
#define USE_SPI_DEVICE_1
48+
#define SPI1_SCK_PIN PA5
49+
#define BMI270_CS_PIN PC2
50+
```
51+
- **UART接口**:映射串口功能(GPS、接收机、图传等)。例如:
52+
```c
53+
#define USE_UART3
54+
#define UART3_RX_PIN PC11 // GPS接口
55+
```
56+
57+
4. **传感器配置**
58+
- **陀螺仪与加速度计**:启用并指定型号及校准方向(如`IMU_BMI270_ALIGN CW0_DEG`)。
59+
- **气压计与磁力计**:若使用DPS310或IST8310,需启用对应驱动并指定I2C总线。
60+
- **OSD与TF卡**:配置AT7456E OSD芯片及SD卡接口(若支持)。
61+
62+
---
63+
64+
### **三、固件编译与烧录**
65+
1. **编译命令**
66+
使用CMake生成编译配置,指定目标名称:
67+
```bash
68+
make CUSTOM_H743
69+
```
70+
71+
2. **烧录固件**
72+
- **DFU模式**:按住BOOT按钮连接USB,使用地面站(如INAV Configurator)或`dfu-util`工具烧录。
73+
- **SWD调试**:通过ST-Link或J-Link直接烧录(需配置`USE_SWD`)。
74+
75+
---
76+
77+
### **四、地面站调试与验证**
78+
1. **连接与初始化**
79+
使用INAV Configurator连接飞控,检查传感器数据(陀螺仪、加速度计、气压计)是否正常显示。
80+
81+
2. **功能配置**
82+
- **接收机协议**:在CLI中设置`serialrx_provider`(如SBUS、CRSF)。
83+
- **电机输出**:配置PWM/DShot协议及电机映射顺序。
84+
- **OSD叠加**:启用并调整显示内容(如电压、飞行模式)。
85+
86+
3. **校准与测试**
87+
- **传感器校准**:执行加速度计、陀螺仪、磁力计校准。
88+
- **电机测试**:通过地面站逐步测试各电机响应,确保无冲突。
89+
90+
---
91+
92+
### **五、常见问题与优化**
93+
1. **驱动缺失**
94+
若电脑无法识别飞控,需安装STM32 VCP驱动(如`stm32cubeprog`包含的驱动)。
95+
96+
2. **硬件冲突**
97+
- **电源干扰**:确保传感器(如IMU)独立供电以减少噪声。
98+
- **引脚复用**:避免UART与SPI/I2C引脚冲突(参考芯片数据手册)。
99+
100+
3. **性能优化**
101+
- **DMA配置**:为高频外设(如陀螺仪SPI)启用DMA以降低CPU负载。
102+
- **时钟分配**:优化STM32H7的时钟树,确保外设时钟与主频匹配。
103+
104+
---
105+
106+
### **参考案例**
107+
- **MicoAir743飞控**:支持INAV 8.0+,其硬件描述文件可直接参考(如UART映射、传感器配置)。
108+
- **星火计划H743飞控**:采用双IMU设计,需在`target.h`中分别定义两个陀螺仪的SPI总线及校准参数。
109+
110+
通过以上步骤,结合硬件特性调整配置文件,即可完成INAV对STM32H743VIH6飞控板的适配。开发过程中建议参考官方文档及社区案例以解决具体问题。

0 commit comments

Comments
 (0)