无名飞控框架梳理

打开飞控的main.c文件

首先是HardWave_Init();//飞控板内部资源、相关外设初始化

打开

#include "Headfile.h"
Sensor_Okay_Flag Sensor_Init_Flag;
void HardWave_Init(void)
{
   SystemInit();//时钟初始化
   cycleCounterInit();//系统滴答时钟初始化,程序精准延时
   SysTick_Config(SystemCoreClock / 1000);//SysTick开启系统tick定时器并初始化其中断,1ms
   USART1_Init(115200);//主串口初始化
   OLED_Init();         //显示屏初始化
   Bling_Init();        //指示灯、测试IO初始化
   Key_Init();          //按键初始化
   PPM_Init();          //PPM遥控器接收初始化
   HC_SR04_Init();      //超声波初始化
   PWM_Init();          //PWM初始化—TIM4
/*
   SPI2_Configuration();
   NRF24L01_Init();//
   while(NRF24L01_Check())
  {
    printf("24L01 Check Failed!\r\n");
    printf("Please Check!\r\n");
   delay_ms(100);
  }
  NRF24L01_RX_Mode();
*/
   Sensor_Init_Flag.NRF24L01_Okay=1;
   QuadInit();
/*******************IMU初始化开始*************************/
   delay_ms(2000);
/***********MPU6050初始化***************/
   IIC_GPIO_Config();
   InitMPU6050_GY86();
   delay_ms(500);
   IMU_Calibration();
   Sensor_Init_Flag.MPU6050_Okay=1;
/***********HMC5883初始化***************/
   delay_ms(100);
   QuadInit();
/***********磁力计+气压计初始化***************/
   delay_ms(500);
#ifdef IMU_BOARD_GY86
   HMC5883L_Initial();
   Sensor_Init_Flag.Mag_Okay=1;
   QuadInit();
   Baro_init();
   Read_MS5611_Offset();
   Sensor_Init_Flag.Baro_Okay=1;
#elsedef IMU_BOARD_NC686
   IST8310_Init();
   Sensor_Init_Flag.Mag_Okay=1;
   QuadInit();
   spl0601_init();
   Sensor_Init_Flag.Baro_Okay=1;
   QuadInit();
#elsedef IMU_BOARD_NC683
   IST8310_Init();
   Sensor_Init_Flag.Mag_Okay=1;
   QuadInit();
   FBM320_Init();
   Sensor_Init_Flag.Baro_Okay=1;
   QuadInit();
#endif
/*******************IMU初始化结束*************************/
   Quad_Start_Bling();//LED开机预显示
   delay_ms(500);
   Parameter_Init();//传感器参数初始化
   LCD_CLS();//清屏
   USART2_Init(19200);//串口2、备用
   USART3_Init(115200);//串口3、解析GPS
   Total_PID_Init();//PID控制器初始化
   TIM2_Configuration_Cnt();//TIM2
   Timer4_Configuration();//TIM3
   NVIC_Configuration();//中断优先级设置
}


void NVIC_Configuration(void)
{
  NVIC_InitTypeDef NVIC_InitStructure;					//定义NVIC初始化结构体
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);			//优先级组别2,具体参见misc.h line80
/*
  //-----NRF24L01数据中断-----//
  NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;			//IRQ中断通道-->NRF24L01,PB12
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;		//抢先式优先级别
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;			//副优先级别
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;			//使能通道
  NVIC_Init(&NVIC_InitStructure);				       //初始化NVIC
*/
//飞控系统定时器
  NVIC_InitStructure.NVIC_IRQChannel =TIM2_IRQn ;//计数定时器
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  //超声波
  NVIC_InitStructure.NVIC_IRQChannel = EXTI1_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority =0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

//PPM接收机
  NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority =1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority =2;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

//GPS数据接收中断
  NVIC_InitStructure.NVIC_IRQChannel = USART3_IRQn;//串口中断3
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

//串口2、光流模块
  NVIC_InitStructure.NVIC_IRQC
### 回答1: 无名创新飞控开源地面站(ngroundstation)是一种先进的无人机地面控制系统。它具备开源的特点,意味着用户可以自由地根据自身需求进行定制和修改。这使得它成为无人机领域的创新工具,给用户提供了更大的灵活性和个性化的选择。 ngroundstation采用了先进的飞控技术,可以实时监控和控制无人机的飞行。它的主要功能包括飞行数据显示、任务规划、航线设置、自动驾驶模式、图像传输、视频回放等。用户可以通过简洁直观的界面对无人机进行灵活的操作和监控。 ngroundstation支持多种无人机型号,并且可以与各种传感器和设备进行无缝集成,从而实现更丰富的功能和更高的性能。它还提供了多种通信方式,包括无线网络、蓝牙和串口,以满足不同用户的需求。 ngroundstation还拥有高度可扩展的特性,用户可以通过添加插件、编写脚本等方式对其进行功能扩展。这使得系统可以适用于各种应用场景,如航拍摄影、植保、应急救援等。 总之,无名创新飞控开源地面站(ngroundstation)是一款先进的无人机地面控制系统,具备开源、灵活、可定制等特点。它的出现为无人机领域的发展带来了更大的创新空间,同时也满足了用户个性化需求的不断增长。 ### 回答2: 无名创新飞控开源地面站ngroundstation是一款使用开源技术开发的先进飞行控制系统。ngroundstation旨在提供一个可靠、灵活、易于使用的地面控制站,以便操作者可以实时监控和控制无人机的飞行。 该地面站具有许多强大的功能。首先,它能够实时显示无人机的飞行状态和位置信息,包括高度、速度、航向等。操作者可以通过地图界面追踪无人机的实时位置,并随时调整飞行路径和目标。 ngroundstation还具有智能导航功能,可以预先设置航点和航线,让无人机在没有人为干预的情况下按照设定的轨迹进行飞行。这对于航拍摄影和地理勘测等任务非常有用,可以确保飞行的准确性和稳定性。 此外,地面站还提供了数据记录和回放功能,可以记录和回放无人机的飞行数据和图像,以便进一步分析和研究。操作者可以通过回放功能来审查无人机的飞行过程,了解操作过程中的任何潜在问题。 ngroundstation还具有强大的远程控制功能。操作者可以通过地面站远程操控无人机的起飞、降落、航向调整等操作,无需实际接触无人机。这是一项非常重要的功能,可以保证操作者的安全,并且方便地进行任务规划和控制。 总之,ngroundstation是一款优秀的无人机地面控制站软件,通过其先进的功能和易用的操作界面,操作者可以实时监控和控制无人机的飞行,同时提供了数据记录和回放功能,方便进一步分析和研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值