一、背景介绍
在看调试悟空 fpv的代码的时候,有时候发现解锁不了,但是由于确少上位机提示,所以只能一步一步调试;发现主要解锁主要有两个方面影响,一个是各项传感器的标志位;一个就是解锁的标志位;这两类都是用一个变量的位是否置位进行判断;
二、传感器等飞行前检查标志位
(1)通过就清零
飞控上有多种传感器、还有一些飞行前检查项目;这些项目一旦通过的检测,就会将相应的bit清零;如下所示:
#define DISABLE_ARMING_FLAG(mask) (armingFlags &= ~(mask))
(2)具体项目
这些都是需要检查通过然后清零的标志位;
二、解锁标志位
(1)ARMED标志位枚举位置
(2)arm(解锁状态)
当使用遥控器进行解锁的时候,就需要将这一位置1,
#define ENABLE_ARMING_FLAG(mask) (armingFlags |= (mask))
完整的code就是:
ENABLE_ARMING_FLAG(ARMED);
(3)是否解锁
在一些程序执行之前,都要判断此时飞机是否已经解锁,
例如在动力分配的时候,就要判读arm这位有没有置1,如果是1,那就说明解锁了,如果是被清0了,那就是上锁(disarm);