1 #ifndef CONFIG_H_
   2 #define CONFIG_H_
   3 
   4 /*************************************************************************************************/
   5 /****           可配置参数                                                 ****/
   6 /*************************************************************************************************/
   7 /*
   8 这个文件由几个部分组成
   9 * 要创建一个工作组合,您必须至少在1节中做出选择。
  10 * 1 - 基本设置 - 您在基本设置中必须选择一个选项。
  11 * 以你连接了4个通道的标准的电调和电机为例。
  12 * 2 - 飞行器类型特定的选项,你可能要检查你的飞行器类型选项的设置
  13 * 3 - 无线遥控系统的设置
  14 * 4 - 替代的CPU和主板 - 如果你有
  15 * 5 - 替代设置 - 选择替代的RX(SBU,PPM,等),替代ESC范围,等在这里
  16 * 6 - 可选功能 - 这里有一些很好的功能可以启用(飞行的模式,LCD,遥测,电池监控等)
  17 * 7 - 调试和开发 - 如果你知道你正在做什么,已经警告过你了。
  18 *(ESC的动态校准,电机/支撑平衡,诊断,节省内存.....)
  19 * 8 - 不推荐使用 - 这些功能将在将来的版本中删除
  20 */
  21 /* Notes:
  22 * 1. 在注释中用(*)标记的参数被储存在eeprom中,并且可以通过串口监控器或LCD调节。
  23 * 2. 在注释中用(**)标记的参数被储存在eeprom中,并且可以通过GUI调节
  24 */
  25 
  26 
  27 /*************************************************************************************************/
  28 /*****************                                                                 ***************/
  29 /****************  SECTION  1 - 基本设置                                                *******/
  30 /*****************                                                                 ***************/
  31 /*************************************************************************************************/
  32 
  33 /**************************    多旋翼飞行器种类    ****************************/
  34 //#define GIMBAL        //自稳云台
  35 //#define BI            //两轴
  36 //#define TRI            //三轴
  37 //#define QUADP            //四轴十字模式
  38 #define QUADX            //四轴X模式
  39 //#define Y4            //四轴Y模式
  40 //#define Y6            //六轴Y模式
  41 //#define HEX6            //六轴
  42 //#define HEX6X            //六轴X模式
  43 //#define HEX6H            // 新类型 六轴H模式
  44 //#define OCTOX8        //八轴
  45 //#define OCTOFLATP        //八轴十字
  46 //#define OCTOFLATX        //八轴X
  47 //#define FLYING_WING    //飞翼
  48 //#define VTAIL4        //四轴v尾
  49 //#define AIRPLANE        //固定翼
  50 //#define SINGLECOPTER    //单旋翼
  51 //#define DUALCOPTER    //双旋翼
  52 //#define HELI_120_CCPM    //120度CCPM直升机
  53 //#define HELI_90_DEG    //90度斜盘直升机
  54 
  55 /****************************    电机最小油门    *******************************/
  56 /* 设定发送至电调(ESC,Electronic Speed Controller)的最小油门命令
  57 该最小值允许电机运行在怠速上 即维持电机怠速的最低油门值.  */
  58 //#define MINTHROTTLE 1300 // 用于Turnigy Plush ESCs 10A
  59 //#define MINTHROTTLE 1120 // 用于Super Simple ESCs 10A
  60 //#define MINTHROTTLE 1064 // 特殊的ESC (simonk蜘蛛电调)
  61 //#define MINTHROTTLE 1050 // 用于brushed ESC比如ladybird
  62 #define MINTHROTTLE 1150 // (*)
  63 
  64 /****************************    电机最大油门     *******************************/
  65 /* ESC全功率工作的最大值,该值最大可增至2000 */
  66 #define MAXTHROTTLE 1850
  67 
  68 /****************************    最小命令          *******************************/
  69 /* 该值用于未解锁时的ESC
  70 在某些情况下,用于一些特殊的电调该值必须降至900,否则电调会初始化失败
  71 OYUZIQI提示 用场效应管驱动空心杯时上电若微微转动可适当降低此数值*/
  72 #define MINCOMMAND  1000
  73 
  74 /**********************************    I2C速度   ************************************/
  75 //#define I2C_SPEED 100000L     //100kHz普通模式,正品WPM必须使用该值
  76 #define I2C_SPEED 400000L   //400kHz快速模式,仅用于一些山寨WPM (可用于GY系列模块)
  77 
  78 /***************************    内部i2c上拉        ********************************/
  79 /* 启用内部I2C上拉(在多数情况下,使用外部上拉更佳)(GY系列模块自带外部上拉) */
  80 //#define INTERNAL_I2C_PULLUPS
  81 
  82 /**********************************  循环周期时间  ******************************/
  83 #define LOOP_TIME 2800
  84 
  85 /**************************************************************************************/
  86 /*****************          主控板与传感器定义            ******************/
  87 /**************************************************************************************/
  88 
  89 /***************************    传感器组合板(传感器集成板)    ********************************/
  90 /* 如果你在使用特定的传感器板:
  91 请提交改动到这个列表。
  92 来自Alex的提示:我只有其中一些板子,对于其他板子,我不能确保好用,信息由遥控论坛生成,请小心使用 *
  93 /*=======================友情提示==========================
  94 下面有一些集成板子淘宝上可以淘到的,如GY_XX系列比较划算。
  95 推荐GY_86,MPU6050\HMC5883L\MS5611的组合挺划算。BMP的180,085气压计确实不怎么样。
  96 */
  97 
  98 
  99 //#define FFIMUv1         // first 9DOF+baro board from Jussi, with HMC5843                   <- confirmed by Alex
 100 //#define FFIMUv2         // second version of 9DOF+baro board from Jussi, with HMC5883       <- confirmed by Alex
 101 //#define FREEIMUv1       // v0.1 & v0.2 & v0.3 version of 9DOF board from Fabio
 102 //#define FREEIMUv03      // FreeIMU v0.3 and v0.3.1
 103 //#define FREEIMUv035     // FreeIMU v0.3.5 no baro
 104 //#define FREEIMUv035_MS  // FreeIMU v0.3.5_MS                                                <- confirmed by Alex
 105 //#define FREEIMUv035_BMP // FreeIMU v0.3.5_BMP
 106 //#define FREEIMUv04      // FreeIMU v0.4 with MPU6050, HMC5883L, MS561101BA                  <- confirmed by Alex
 107 //#define FREEIMUv043     // same as FREEIMUv04 with final MPU6050 (with the right ACC scale)
 108 //#define NANOWII         // the smallest multiwii FC based on MPU6050 + pro micro based proc <- confirmed by Alex
 109 //#define PIPO            // 9DOF board from erazz
 110 //#define QUADRINO        // full FC board 9DOF+baro board from witespy  with BMP085 baro     <- confirmed by Alex
 111 //#define QUADRINO_ZOOM   // full FC board 9DOF+baro board from witespy  second edition
 112 //#define QUADRINO_ZOOM_MS// full FC board 9DOF+baro board from witespy  second edition       <- confirmed by Alex
 113 //#define ALLINONE        // full FC board or standalone 9DOF+baro board from CSG_EU
 114 //#define AEROQUADSHIELDv2
 115 //#define ATAVRSBIN1      // Atmel 9DOF (Contribution by EOSBandi). requires 3.3V power.
 116 //#define SIRIUS          // Sirius Navigator IMU                                             <- confirmed by Alex
 117 //#define SIRIUSGPS       // Sirius Navigator IMU  using external MAG on GPS board            <- confirmed by Alex
 118 //#define SIRIUS600       // Sirius Navigator IMU  using the WMP for the gyro
 119 //#define SIRIUS_AIR      // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com           <- confirmed by Alex
 120 //#define SIRIUS_AIR_GPS  // Sirius Navigator IMU 6050 32U4 from MultiWiiCopter.com with GPS/MAG remote located
 121 //#define SIRIUS_MEGAv5_OSD //  Paris_Sirius™ ITG3050,BMA280,MS5611,HMC5883,uBlox  http://www.Multiwiicopter.com <- confirmed by Alex
 122 //#define MINIWII         // Jussi's MiniWii Flight Controller                                <- confirmed by Alex
 123 //#define MICROWII        // MicroWii 10DOF with ATmega32u4, MPU6050, HMC5883L, MS561101BA from http://flyduino.net/
 124 //#define CITRUSv2_1      // CITRUS from qcrc.ca
 125 //#define CHERRY6DOFv1_0
 126 //#define DROTEK_10DOF    // Drotek 10DOF with ITG3200, BMA180, HMC5883, BMP085, w or w/o LLC
 127 //#define DROTEK_10DOF_MS // Drotek 10DOF with ITG3200, BMA180, HMC5883, MS5611, LLC
 128 //#define DROTEK_6DOFv2   // Drotek 6DOF v2
 129 //#define DROTEK_6DOF_MPU // Drotek 6DOF with MPU6050
 130 //#define DROTEK_10DOF_MPU//
 131 //#define MONGOOSE1_0     // mongoose 1.0    http://store.ckdevices.com/
 132 //#define CRIUS_LITE      // Crius MultiWii Lite
 133 //#define CRIUS_SE        // Crius MultiWii SE
 134 //#define CRIUS_SE_v2_0   // Crius MultiWii SE 2.0 with MPU6050, HMC5883 and BMP085
 135 //#define OPENLRSv2MULTI  // OpenLRS v2 Multi Rc Receiver board including ITG3205 and ADXL345
 136 //#define BOARD_PROTO_1   // with MPU6050 + HMC5883L + MS baro
 137 //#define BOARD_PROTO_2   // with MPU6050 + slave  MAG3110 + MS baro
 138 //#define GY_80           // Chinese 10 DOF with  L3G4200D ADXL345 HMC5883L BMP085, LLC
 139 //#define GY_85           // Chinese 9 DOF with  ITG3205 ADXL345 HMC5883L LLC
 140 //#define GY_86           // Chinese 10 DOF with  MPU6050 HMC5883L MS5611, LLC
 141 #define GY_88 // Chinese 10 DOF with MPU6050 HMC5883L BMP085, LLC
 142 //#define GY_521          // Chinese 6  DOF with  MPU6050, LLC
 143 //#define INNOVWORKS_10DOF // with ITG3200, BMA180, HMC5883, BMP085 available here http://www.diymulticopter.com
 144 //#define INNOVWORKS_6DOF // with ITG3200, BMA180 available here http://www.diymulticopter.com
 145 //#define MultiWiiMega    // MEGA + MPU6050+HMC5883L+MS5611 available here http://www.diymulticopter.com
 146 //#define PROTO_DIY       // 10DOF mega board
 147 //#define IOI_MINI_MULTIWII// www.bambucopter.com
 148 //#define Bobs_6DOF_V1     // BobsQuads 6DOF V1 with ITG3200 & BMA180
 149 //#define Bobs_9DOF_V1     // BobsQuads 9DOF V1 with ITG3200, BMA180 & HMC5883L
 150 //#define Bobs_10DOF_BMP_V1 // BobsQuads 10DOF V1 with ITG3200, BMA180, HMC5883L & BMP180 - BMP180 is software compatible with BMP085
 151 //#define FLYDUINO_MPU       // MPU6050 Break Out onboard 3.3V reg
 152 //#define CRIUS_AIO_PRO
 153 //#define DESQUARED6DOFV2GO  // DEsquared V2 with ITG3200 only
 154 //#define DESQUARED6DOFV4    // DEsquared V4 with MPU6050
 155 //#define LADYBIRD
 156 //#define MEGAWAP_V2_STD     // available here: http://www.multircshop.com                    <- confirmed by Alex
 157 //#define MEGAWAP_V2_ADV
 158 //#define HK_MultiWii_SE_V2  // Hobbyking board with MPU6050 + HMC5883L + BMP085
 159 //#define HK_MultiWii_328P   // Also labeled "Hobbybro" on the back.  ITG3205 + BMA180 + BMP085 + NMC5583L + DSM2 Connector (Spektrum Satellite)
 160 //#define RCNet_FC           // RCNet FC with MPU6050 and MS561101BA  http://www.rcnet.com
 161 //#define RCNet_FC_GPS       // RCNet FC with MPU6050 + MS561101BA + HMC5883L + UBLOX GPS http://www.rcnet.com
 162 //#define FLYDU_ULTRA        // MEGA+10DOF+MT3339 FC
 163 //#define DIYFLYING_MAGE_V1  // diyflying 10DOF mega board with MPU6050 + HMC5883L + BMP085 http://www.indoor-flying.hk
 164 //#define MultiWii_32U4_SE         // Hextronik MultiWii_32U4_SE
 165 //#define MultiWii_32U4_SE_no_baro // Hextronik MultiWii_32U4_SE without the MS561101BA to free flash-memory for other functions
 166 //#define Flyduino9DOF       // Flyduino 9DOF IMU MPU6050+HMC5883l
 167 //#define Nano_Plane         // Multiwii Plane version with tail-front LSM330 sensor http://www.radiosait.ru/en/page_5324.html
 168 
 169 /***************************    独立的传感器    ********************************/
 170 /* 
 171 如果你已在上方选择了相应的组合板子,请跳过,保持以下注释状态即可 
 172 这里是用来设置你单独连接在I2C上的传感器模块。当然每样都单独买价格会高一些,如果你是豪,当我没说。
 173 */
 174 /* I2C陀螺仪 */
 175 //#define WMP
 176 //#define ITG3050
 177 //#define ITG3200
 178 //#define MPU3050
 179 //#define L3G4200D
 180 //#define MPU6050       //带了加速度
 181 //#define LSM330        //带了加速度
 182 
 183 /* I2C加速度计 */
 184 //#define MMA7455
 185 //#define ADXL345
 186 //#define BMA020
 187 //#define BMA180
 188 //#define BMA280
 189 //#define LIS3LV02
 190 //#define LSM303DLx_ACC
 191 //#define MMA8451Q
 192 
 193 /* I2C气压计 */
 194 //#define BMP085
 195 //#define MS561101BA
 196 
 197 /* I2C磁力计 */
 198 //#define HMC5843
 199 //#define HMC5883
 200 //#define AK8975
 201 //#define MAG3110
 202 
 203 /* 声呐 */ // 目前用作显示用途 - 无控制代码支持 
 204 /* OYUZIQI提示:貌似bbs.5imx.com上有大神完成了代码,且国外论坛上有光流
 205 http://bbs.5imx.com/bbs/forum.php?mod=viewthread&tid=726172&page=1
 206 http://www.multiwii.com/forum/viewtopic.php?f=7&t=1413
 207 */
 208 //#define SRF02 // use the Devantech SRF i2c sensors
 209 //#define SRF08
 210 //#define SRF10
 211 //#define SRF235
 212 
 213 /* ADC加速度计 */ // 用于来自sparkfun的5DOF,使用模拟针脚A1/A2/A3
 214 //#define ADCACC
 215 
 216 /* 强制你独有的的传感器方向 - 甚至覆盖集成dof板子特定的默认值 */
 217 //#define FORCE_ACC_ORIENTATION(X, Y, Z)  {imu.accADC[ROLL]  =  Y; imu.accADC[PITCH]  = -X; imu.accADC[YAW]  = Z;}
 218 //#define FORCE_GYRO_ORIENTATION(X, Y, Z) {imu.gyroADC[ROLL] = -Y; imu.gyroADC[PITCH] =  X; imu.gyroADC[YAW] = Z;}
 219 //#define FORCE_MAG_ORIENTATION(X, Y, Z)  {imu.magADC[ROLL]  =  X; imu.magADC[PITCH]  =  Y; imu.magADC[YAW]  = Z;}
 220 
 221 /* 板子方向转移 */
 222 /* 如果你的机架设计仅用于+模式,并且你不能物理上将飞控旋转至用于X模式飞行(反之亦然)
 223 * 你可以使用其中一个选项虚拟旋转传感器45度,然后通过飞行模式设定多旋翼飞行器的类型。
 224 * 检查电机顺序与旋转方向是否与新的“前方”匹配!仅使用其中一项注释! */
 225 //#define SENSORS_TILT_45DEG_RIGHT        // 将“前方”顺时针旋转45度
 226 //#define SENSORS_TILT_45DEG_LEFT         // 将“前方”逆时针旋转45度
 227 
 228 
 229 /*************************************************************************************************/
 230 /*****************                                                                 ***************/
 231 /****************  SECTION  2 - 飞行器类型特定的选项                               *******/
 232 /*****************                                                                 ***************/
 233 /*************************************************************************************************/
 234 /********************************  PID控制算法 *********************************/
 235 /* 单独选择一个PID控制算法
 236 * 1 = 演进 oldschool 算法(类似于V2.2)
 237 * 2 = 新的实验算法 来自 Alex Khoroshko - 无技术支持 - http://www.multiwii.com/forum/viewtopic.php?f=8&t=3671&start=10#p37387
 238 * */
 239 #define PID_CONTROLLER 1
 240 
 241 /* NEW: 不再使用伺服飞行器种类 (需要修复))   <== NEEDS FIXING - MOVE TO WIKI */
 242 #define YAW_DIRECTION 1
 243 //#define YAW_DIRECTION -1 // 如果你想反向修正偏航方向
 244 
 245 #define ONLYARMWHENFLAT //阻止飞行器倾斜时解锁
 246 
 247 /********************************    锁定/解锁    *********************************/
 248 /* 可以禁止使用摇杆组合进行锁定/解锁电机。
 249 * 在多数情况下,选择其中一种通过发射机摇杆锁定/解锁电机的选项即可 */
 250 #define ALLOW_ARM_DISARM_VIA_TX_ROLL //通过翻滚(副翼)解锁
 251 //#define ALLOW_ARM_DISARM_VIA_TX_YAW    //通过转向(尾舵)解锁(默认)
 252 
 253 /********************************    舵机      *********************************/
 254 /* 舵机连接在哪里以及如何设置可以在这里找到
 255 * http://www.multiwii.com/wiki/index.php?title=Config.h#Servos_configuration
 256 */
 257 
 258 
 259 /* 如果你想预定最小/中间/最大值为伺服正确后flashing,
 260 因为物理因素限制伺服行程的设置,您必须启用并设置所有三以下选项* /
 261 //#define SERVO_MIN  {1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020} //舵机最小值(jpno1 注)
 262 //#define  SERVO_MAX {2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000} //舵机最大值(jpno1 注)
 263 //#define  SERVO_MID {1500, 1500, 1500, 1500, 1500, 1500, 1500, 1500} // (*)舵机中立点(jpno1注)
 264 //#define FORCE_SERVO_RATES      {30,30,100,100,100,100,100,100} // 0=正向 1=反向
 265 
 266 /***********************          相机稳定             ***********************/
 267 /* 以下几行仅用于pitch/roll倾斜稳定系统。去除注释第一或第二行来激活它 */
 268 //#define SERVO_MIX_TILT  //混合模式(用于十字模式) (jpno1注)
 269 //#define SERVO_TILT      // 普通x模式适用(jpno1注)
 270 
 271 /* 相机触发设置 : 激发路径显示在GUI, 使用A2作为舵机输出在promini */
 272 // 触发路径可以设置 (*GUI*) or 或者通过AUX铺助通道
 273 //#define CAMTRIG
 274 #define CAM_TIME_HIGH 1000   // 高电平时间(毫秒)
 275 
 276 /***********************          飞机                       ***********************/
 277 //#define USE_THROTTLESERVO // 用于在油门上使用标准50Hz舵机。
 278 
 279 //#define FLAPPERONS    AUX4          // 混合襟翼与副翼。
 280 #define FLAPPERON_EP   { 1500, 1700 } // 用于襟翼双向切换的端点,另外可设为{1020,2000}并在遥控上编程。
 281 #define FLAPPERON_INVERT { -1, 1 }    // 改变襟副翼的方向{ Wing1, Wing2 }
 282 
 283 //#define FLAPS                       // 传统移动 SERVO3.
 284 //#define FLAPSPEED     3             //使襟翼移动变慢,值越高速度越快。
 285 
 286 /***********************          直升机与飞机通用                ***********************/
 287 
 288 /* 调节器:试图通过螺距和电压的改变维持转速
 289 * 预测方法:观察输入信号与电压并猜测适当的修正。
 290 * (油门曲线必须为调节器留有空间,所以0-50-75-80-80是可以的,不可以为0-50-95-100-100。
 291 * 可以通过aux开关切换
 292 */
 293 //#define GOVERNOR_P 7     // (*) 比例因子。更大的值 -> 更大的油门增量。必须>=1;0 = 关闭
 294 //#define GOVERNOR_D 4     // (*) 衰减时间。更大的值 -> 油门回到正常需要更长时间。 必须>=1;
 295 //#define VOLTAGEDROP_COMPENSATION // 电压影响校正
 296 
 297 /***********************         直升机                          ***********************/
 298 /*  控制总距的通道 */
 299 #define COLLECTIVE_PITCH      THROTTLE
 300 
 301 /* 限制总距的范围。100%为每个方向的最大范围,还有零螺距的位置 */
 302 #define COLLECTIVE_RANGE { 80, 0, 80 }// {最小%,从1500开始的零螺距偏移,最大%}。
 303 #define YAWMOTOR                 0       // 如果一个电机用作YAW则设为1,否则设为0。
 304 
 305 /* 用于120直升机的舵机混控,使用分数1/10(例.5 = 5/10 = 1/2)
 306 {Coll,Nick,Roll} */
 307 #define SERVO_NICK   { +10, -10,  0 }
 308 #define SERVO_LEFT   { +10, +5, +10 } 
 309 #define SERVO_RIGHT  { +10, +5, -10 } 
 310 
 311 /* 限制用于Roll & Nick最大控制,范围0-100% */
 312 #define CONTROL_RANGE   { 100, 100 }      //  { ROLL,PITCH }
 313 
 314 /* 使用舵机代码驱动油门输出。用模拟舵机驱动IC引擎上的油门时,你会需要此项。
 315 如果不启用,油门输出会被看做电机输出,所以它可以驱动电调 */
 316 //#define HELI_USE_SERVO_FOR_THROTTLE
 317 
 318 /***********************      你的独立混控              ***********************/
 319 /* 如果你想要覆盖一个选存的混合表中的条目,你可能想要避免
 320 * 在每个版本一遍又一遍的编辑mixTable()函数
 321 * 操作方式:http://www.multiwii.com/wiki/index.php?title=Config.h#Individual_Mixing
 322 */
 323 //#define MY_PRIVATE_MIXING "filename.h"    更改filename.h为你自己的默认文件(jpno1注)
 324 
 325 /***********************      y你的默认参数    ***********************/
 326 /* 如果你想要覆盖一个选存的混合表中的条目,你可能想要避免
 327 * 在每个版本一遍又一遍的编辑 LoadDefaults() 函数
 328 * http://www.multiwii.com/wiki/index.php?title=Config.h#Individual_defaults
 329 */
 330 //#define MY_PRIVATE_DEFAULTS "filename.h"   更改filename.h为你自己的默认文件(jpno1注)
 331 
 332 
 333 /*************************************************************************************************/
 334 /*****************                                                                 ***************/
 335 /****************  SECTION  3 - 无线遥控系统设置                                           *******/
 336 /*****************                                                                 ***************/
 337 /*************************************************************************************************/
 338 
 339 /* 提示:如果你使用的是标准接收机,不必取消本节的一些注释 */
 340 
 341 /****************************     扩展辅助状态     ***********************************/
 342 /* 如果你启用这个设置,在AUX通道(aux1-aux4)通道,你可以使用六个档位。
 343 注意:能使用6个档位的只有wingui 2.3或者更新的版本地面站。multiwiiconf还不支持
 344 档位值
 345 1000-1230
 346 1231-1360
 347 1361-1490
 348 1491-1620
 349 1621-1749
 350 1750-
 351 
 352 */
 353 
 354 //#define EXTENDED_AUX_STATES
 355 
 356 
 357 /**************************************************************************************/
 358 /********                       特殊接收机类型                     ********************/
 359 /**************************************************************************************/
 360 
 361 /****************************    PPM Sum接收机      ***********************************/
 362 /* 下列几行仅用于特定的仅有一个PPM sum信号的接收机,接在数字针脚2上
 363 根据你的遥控品牌选择相应的行。当你的PPM顺序不同时,你可以随意修改顺序 */
 364 //#define SERIAL_SUM_PPM         PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Graupner/Spektrum
 365 //#define SERIAL_SUM_PPM         ROLL,PITCH,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Robe/Hitec/Futaba
 366 //#define SERIAL_SUM_PPM         ROLL,PITCH,YAW,THROTTLE,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于Multiplex
 367 //#define SERIAL_SUM_PPM         PITCH,ROLL,THROTTLE,YAW,AUX1,AUX2,AUX3,AUX4,8,9,10,11 //用于一些韩国的/日本三和/其它
 368 
 369 // 解除下面这行注释以允许连接PPM_SUM接收机至MEGA板上的标准油门针脚(例.CRIUS AIO上的A8)
 370 //#define PPM_ON_THROTTLE
 371 
 372 /**********************    Spektrum卫星接收机    *******************************/
 373 /* 以下几行仅用于Spektrum卫星接收机
 374 Spektrum卫星系列是3V设备。不要连接至5V!
 375 对于MEGA板,将灰线连接到RX1,19针脚上。黑线接地。橙线连接到Mega板的3.3V上(或其他3V至3.3V的电源)。
 376 对于PROMINI,将灰线连接到RX0。黑线接地。 */
 377 //#define SPEKTRUM 1024
 378 //#define SPEKTRUM 2048
 379 //#define SPEK_SERIAL_PORT 1    // Pro Mini与其他单串口的板子上只能设为0;在所有基于Mega的板子上设为你选择的0,1,2(在Mega上默认为1)。
 380 //**************************
 381 // 定义此项允许Spektrum或兼容机远程接收机(也就是卫星)通过配置GUI对频。
 382 //   对频模式与上述的相同,只要你的发射机支持。
 383 //   接地,电源,信号必须来自三个邻近的针脚。
 384 //   默认下,它们为接地=4,电源=5,信号=6。这些针脚在多数MultiWii扩展板上都为一排。可在下方覆盖针脚。
 385 //   通常需要在电源针脚上使用3.3V稳压器!!如果你的卫星在对频时停摆(闪烁,但不会常亮停止闪烁),将所有的针脚连接至5V。
 386 //**************************
 387 //   对于Pro Mini,用于卫星的属于FTDI的连接器可以拔掉,并移至那三个相邻针脚。
 388 //#define SPEK_BIND             //解除注释以开启Spektrum卫星对频支持。没有它代码可节省约420字节。
 389 //#define SPEK_BIND_GROUND 4
 390 //#define SPEK_BIND_POWER  5
 391 //#define SPEK_BIND_DATA   6
 392 
 393 /*******************************    SBUS接收机        ************************************/
 394 /* 下面这行仅用于Futaba S-Bus接收机在MEGA板上的RX1的情况(串口1)。
 395 你必须反转S-Bus-串口信号,例如使用十六进制反相器像是IC SN74 LS 04 */
 396 //#define SBUS
 397 //#define SBUS_SERIAL_PORT 1
 398 #define SBUS_MID_OFFSET 988 //SBUS Mid-Point at 1500
 399 
 400 /******************************* HOTT 接收机 ************************************/
 401 /* Graupner Hott HD */
 402 //#define SUMD PITCH,YAW,THROTTLE,ROLL,AUX1,AUX2,AUX3,AUX4
 403 //#define RX_SERIAL_PORT 1
 404 
 405 /*************************************************************************************************/
 406 /*****************                                                                 ***************/
 407 /****************  SECTION  4 - 替代的CPU和主板                                    *******/
 408 /*****************                                                                 ***************/
 409 /*************************************************************************************************/
 410 
 411 /**************************************************************************************/
 412 /********                      Promini板专用设置           ********************/
 413 /**************************************************************************************/
 414 
 415 /**************************       六轴电机 5 & 6 针脚    *******************************/
 416 /* 用A0与A1针脚代替D5与D6针脚,用于6个电机配置与promini配置
 417 该模式允许在promini上标准接收机的使用
 418 (不必使用PPM sum接收机) */
 419 //#define A0_A1_PIN_HEX
 420 
 421 /*********************************    Aux 2 针脚     ***********************************/
 422 /* 让你可以使用针脚8或针脚12作为遥控的AUX2输入(只可启用一个,不可全部启用)
 423 如果启用它会使功率针脚(针脚12)或蜂鸣针脚(针脚8)失效 */
 424 //#define RCAUXPIN8
 425 //#define RCAUXPIN12
 426 
 427 
 428 /**************************************************************************************/
 429 /*****************             Teensy 2.0 支持                    ******************/
 430 /**************************************************************************************/
 431 /* 解除此项如果你使用的是使用teensyduino的teensy 2.0
 432 它需要运行在16MHz */
 433 //#define TEENSY20
 434 
 435 
 436 /**************************************************************************************/
 437 /********   用于ProMicro,Leonardo和其他Atmega32u4板子的设置                ***********/
 438 /**************************************************************************************/
 439 
 440 /*********************************    针脚布局       **********************************/
 441 /* 如果所有针脚都能使用,激活此项可获得更好的针脚布局 => 在ProMicro上不可用 */
 442 //#define A32U4ALLPINS
 443 
 444 /**********************************    PWM设置       **********************************/
 445 /* 激活全部6个硬件PWM输出,电机5 = D11,电机6 = D13。
 446 提示:不可用于sparkfun promicro(针脚11 & 13未被引出)
 447 如果激活:
 448 电机1-6 = 10位硬件PWM
 449 电机7-8 = 8位软件PWM
 450 舵机    = 8位软件PWM
 451 如果未激活:
 452 电机1-4 = 10位硬件PWM
 453 电机5-8 = 10位软件PWM
 454 舵机    = 10位软件PWM */
 455 //#define HWPWM6
 456 
 457 /**********************************    Aux 2 针脚    **********************************/
 458 /* AUX2针脚在RXO针脚上 */
 459 //#define RCAUX2PINRXO
 460 
 461 /* aux2针脚在D17针脚上(RXLED) */
 462 //#define RCAUX2PIND17
 463 
 464 /**********************************    蜂鸣针脚      **********************************/
 465 /* 此项将蜂鸣针脚从TX0移动至D8以使用ppm sum或spectrum sat.接收机(如果启用了A32U4ALLPINS则不需此项) */
 466 //#define D8BUZZER
 467 
 468 /***********************      Promicro版本相关             ****************************/
 469 /* 反转状态LED用于Promicro版本10 */
 470 //#define PROMICRO10
 471 
 472 
 473 /**************************************************************************************/
 474 /********                      默认针脚分配调整    ********************/
 475 /**************************************************************************************/
 476 
 477  /* 仅在你必须改变默认针脚分配时才启用其中一项,例:你的板子没有特定针脚 */
 478   /* 你可能需要依据期望的针脚给PINx与PORTx加上#移位! */
 479 
 480 //#define OVERRIDE_V_BATPIN                   A0 // 代替A3    //模拟针脚3
 481 
 482 //#define OVERRIDE_PSENSORPIN                 A1 // 代替A2    //模拟针脚2
 483 
 484 //#define OVERRIDE_LEDPIN_PINMODE             pinMode (A1, OUTPUT); // 使用A1代替d13
 485 //#define OVERRIDE_LEDPIN_TOGGLE              PINC |= 1<<1; // PINB |= 1<<5;     //切换LED针脚状态(数字针脚13)
 486 //#define OVERRIDE_LEDPIN_OFF                 PORTC &= ~(1<<1); // PORTB &= ~(1<<5);
 487 //#define OVERRIDE_LEDPIN_ON                  PORTC |= 1<<1;    // was PORTB |= (1<<5);
 488 
 489 //#define OVERRIDE_BUZZERPIN_PINMODE          pinMode (A2, OUTPUT); // 使用A2代替d8
 490 //#define OVERRIDE_BUZZERPIN_ON               PORTC |= 1<<2 //PORTB |= 1;
 491 //#define OVERRIDE_BUZZERPIN_OFF              PORTC &= ~(1<<2); //PORTB &= ~1;
 492 
 493 /*************************************************************************************************/
 494 /*****************                                                                 ***************/
 495 /****************  SECTION  5 - 替代设置                                                   *******/
 496 /*****************                                                                 ***************/
 497 /*************************************************************************************************/
 498 
 499 /******                串行速率    *********************************/
 500 /* 此为每个串口的速率 */
 501 #define SERIAL0_COM_SPEED 115200
 502 #define SERIAL1_COM_SPEED 115200
 503 #define SERIAL2_COM_SPEED 115200
 504 #define SERIAL3_COM_SPEED 115200
 505 
 506 /* 当I2C总线有错误时,我们可在很短的时间内中立化相关值。用微秒表示
 507 它仅与至少有一个WMP的配置相关 */
 508 #define NEUTRALIZE_DELAY 100000
 509 
 510 /**************************************************************************************/
 511 /********                              陀螺仪滤波器                ********************/
 512 /**************************************************************************************/
 513 
 514 /*********************    特定的几款陀螺仪的低通滤波器    ****************************/
 515 /* ITG3200 & ITG3205 的低通滤波设置. 如果你不能减小飞行器震动,你可以尝试
 516 逐步降低低通滤波器的频率,一旦抖动消失就可以保持相应滤波设置
 517   它对回馈引起的摆动不起作用,所以只在飞行器随机抽动并且所有抑制和平衡设置失效的时候才修改它。只取消注释其中一项!
 518   重要!改变低通滤波器设置将会改变PID的行为,所以在改变LPF后重新调整你的PID。
 519   支持低通滤波的陀螺仪模块:ITG3050, ITG3200, MPU3050, MPU6050*/
 520 //#define GYRO_LPF_256HZ      // 此为默认设置,不需要取消注释,只作为参考
 521 //#define GYRO_LPF_188HZ
 522 //#define GYRO_LPF_98HZ
 523 //#define GYRO_LPF_42HZ
 524 #define GYRO_LPF_20HZ
 525 //#define GYRO_LPF_10HZ
 526 //#define GYRO_LPF_5HZ        // 只在极端情况下使用此项,更应该换电机和/或螺旋桨 -- 此设置不能在ITG3200陀螺仪上工作
 527 
 528 /******                陀螺仪平滑化    **********************************/
 529 /* GYRO_SMOOTHING.在你不能消除振动的情况下,_并且_是在尝试了低通滤波器选项_之后_,你
 530 可尝试此通过平均化的陀螺仪平滑化。不适用于多旋翼飞行器!
 531 在有很多振动的直升机,飞机和飞翼(泡沫的)上可获得良好结果。*/
 532 //#define GYRO_SMOOTHING {20, 20, 3}    // (*) 分别为roll, pitch, yaw的平均化范围
 533 
 534 /************************    移动平均陀螺仪    **********************************/
 535 //#define MMGYRO 10                      // (*) 激活用于陀螺仪的移动平均函数
 536 //#define MMGYROVECTORLENGTH 15          // 移动平均向量的长度(用于可调节的MMGYRO的最大值
 537 /* 移动平均舵机云台信号输出 */
 538 //#define MMSERVOGIMBAL                  // 激活用于舵机云台的输出移动平均函数
 539 //#define MMSERVOGIMBALVECTORLENGHT 32   // 移动平均向量的长度
 540 
 541 /************************    模拟读取   ********************************** /
 542 /*如果你想更快的模拟读取,注释它。它可能会导致不准确的结果,特别是对多个模拟通道*/
 543 //#define FASTER_ANALOG_READS
 544 
 545 /*************************************************************************************************/
 546 /*****************                                                                 ***************/
 547 /****************  SECTION  6 - 可选功能                                                   *******/
 548 /*****************                                                                 ***************/
 549 /*************************************************************************************************/
 550 
 551 /************************        解锁后重置气压计高度         ********************/
 552 /* When unchecked a calibration of the baro altitude is preformed every time arming is activated */
 553 #define ALTITUDE_RESET_ON_ARM
 554 
 555 /************************        油门随着角度补偿         ********************/
 556   /* 可以让你飞机倾斜的时候不要掉高度。根据角度增加油门,这是可以开下来的,但是要根据飞机不同来调节。免得角度一倾斜,油门窜得太高。
 557      最初构想 by Kraut Rob, first implementation HAdrian                            */
 558 
 559   //#define THROTTLE_ANGLE_CORRECTION 40
 560 
 561 /*** 无头模式 : 起飞点和飞行器的连线将成为控制方向 ***/
 562 #define HEADFREE
 563 
 564  /*************************       高级 Headfree 无头模式             ********************/
 565  /* In Advanced Headfree mode when the copter is farther than ADV_HEADFREE_RANGE meters then 
 566     the  bearing between home and copter position will become the control direction 
 567     IF copter come closer than ADV_HEADFREE_RANGE meters, then the control direction freezed to the 
 568     bearing between home and copter at the point where it crosses the ADV_HEADFREE_RANGE meter distance
 569     first implementation by HAdrian, mods by EOSBandi
 570   在高级无头模式下,当飞行机超过ADV_HEADFREE_RANGE定义的范围, 
 571   起飞点和飞行器的连线将成为控制方向, 当飞行器飞入ADV_HEADFREE_RANGE定义范围,那么控制方向将锁定为原点和飞行器飞入ADV_HEADFREE_RANGE
 572   范围内时位置的连线,
 573  */
 574 
 575    //#define ADVANCED_HEADFREE                                    //去掉注释开启高级无头模式
 576    //#define ADV_HEADFREE_RANGE 15                                //高级无头模式范围米.
 577 
 578 
 579 /************************        连续的陀螺仪校准                     ********************/
 580   /* 如果在校准过程中飞行器被移动,陀螺仪校准将会重复。 */
 581     //#define GYROCALIBRATIONFAILSAFE
 582 
 583 /************************        AP飞行模式           **********************************/
 584 /* 临时禁用GPS_HOLD_MODE(GPS保持模式),让移动摇杆时可以调整定点位置。*/
 585 #define AP_MODE 40  // Create a deadspan for GPS.
 586 
 587 /************************    辅助特技练习器         ************************************/
 588 /* 在自动复原辅助下训练特技。该值设定ANGLE_MODE接管的点。
 589 记住首先激活ANGLE_MODE!...
 590 值为200将会给你一个很明显的转换 */
 591 //#define ACROTRAINER_MODE 200   // http://www.multiwii.com/forum/viewtopic.php?f=16&t=1944#p17437
 592 
 593 
 594 /********                          失控保护设置                 ********************/
 595 /* 失控保护检查四个控制通道CH1-CH4的脉冲。如果脉冲丢失或低于985us(在这四个通道的任意一个上)
 596 失控保护程序就会启动。从失控保护检测到,再经过FAILSAFE_DELAY的时间,自稳模式就会开启(如果加速度或鸡腿柄可用),
 597 PITCH,ROLL和YAW被置中,油门设为FAILSAFE_THR0TTLE的值。你必须设定该值使下降速度在1m/s左右
 598 以获得最佳结果。该值取决于你的配置,总重量和一些其他参数。接下来,在FAILSAFE_OFF_DELAY之后,飞行器会被锁定,
 599 并且电机会停止。如果遥控脉冲在到达FAILSAFE_OFF_DELAY时间之前恢复,在很短的保护时间之后遥控就会恢复正常。 */
 600 //#define FAILSAFE                                // 解除注释以激活failsafe函数
 601 #define FAILSAFE_DELAY     10                     // 用于丢失信号之后失控保护激活之前的保护时间。1步=0.1秒 - 示例中为1秒
 602 #define FAILSAFE_OFF_DELAY 200                    // 用于电机停止前的着陆时间,以0.1秒为单位。1步=0.1秒 - 示例中为20秒
 603 #define FAILSAFE_THROTTLE  (MINTHROTTLE + 200)    // (*) 用于降落的油门级别 - 可与MINTHROTTLE相关联 - 如本例所示
 604 
 605 #define FAILSAFE_DETECT_TRESHOLD  985
 606 
 607 
 608 /*****************                DFRobot LED 光环     *********************************/
 609 /* I2C DFRobot LED光环通讯 */
 610 //#define LED_RING
 611 
 612 /********************************    LED闪光灯      ***********************************/
 613 //#define LED_FLASHER
 614 //#define LED_FLASHER_DDR DDRB
 615 //#define LED_FLASHER_PORT PORTB
 616 //#define LED_FLASHER_BIT PORTB4
 617 //#define LED_FLASHER_INVERT
 618 //#define LED_FLASHER_SEQUENCE        0b00000000      // leds关闭
 619 //#define LED_FLASHER_SEQUENCE_ARMED  0b00000101      // 创建双闪
 620 //#define LED_FLASHER_SEQUENCE_MAX    0b11111111      // 全照明
 621 //#define LED_FLASHER_SEQUENCE_LOW    0b00000000      // 无照明
 622 
 623 
 624 /*******************************    着陆灯            *********************************/
 625 /* 着陆灯
 626 使用一个输出针脚控制着陆灯。
 627 它与从声纳获得的高度数据结合时
 628 可以自动开关。 */
 629 //#define LANDING_LIGHTS_DDR DDRC
 630 //#define LANDING_LIGHTS_PORT PORTC
 631 //#define LANDING_LIGHTS_BIT PORTC0
 632 //#define LANDING_LIGHTS_INVERT
 633 
 634 /* 依据声纳传来的数在地面之上的高度(以cm为单位) */
 635 //#define LANDING_LIGHTS_AUTO_ALTITUDE 50
 636 
 637 /* 让闪光灯的样式应用于着陆灯LED */
 638 //#define LANDING_LIGHTS_ADOPT_LED_FLASHER_PATTERN
 639 
 640 /*************************    飞行时加速度计校准           *****************************/
 641 /* 此项会激活加速度计飞行时校准 */
 642 //#define INFLIGHT_ACC_CALIBRATION
 643 
 644 /*******************************    OSD切换        *************************************/
 645 // 此项会添加一个可被OSD解读的激活状态的选框(比如说开关覆盖物)
 646 //#define OSD_SWITCH
 647 
 648 /**************************************************************************************/
 649 /***********************              发射机-相关            **************************/
 650 /**************************************************************************************/
 651 
 652 /* 在摇杆中点周围引入一个死区(译者注:无作用控制区)
 653 必须大于零,如果你不需要在roll,pitch和yaw上的死区就注释掉它 */
 654 #define DEADBAND 6
 655 
 656 /**************************************************************************************/
 657 /***********************                  GPS                **************************/
 658 /**************************************************************************************/
 659 
 660 /* 启用GPS 模拟器 (只支持NMEA协议)*/
 661 //#define GPS_SIMULATOR
 662 
 663 /* GPS使用一个串口
 664 如果启用,在此定义Arduino串口号与UART速度
 665 注:如在NMEA模式只有RX针脚是被使用的,GPS不可被multiwii配置
 666 在NMEA模式下,GPS必须配置为输出GGA与RMC NMEA语句(在大部分GPS设备中通常为默认配置)
 667 至少为5Hz更新速率。解除第一行注释来选择用于GPS的arduino串口 */
 668 
 669 //#define GPS_SERIAL 2        
 670 // flyduino v2应设为2。此为arduino MEGA上的串口号
 671 // PRO_MINI(ex GPS_PRO_MINI)必须为0
 672 // 提示: 现在GPS可以共享同一端口的MSP。唯一的限制是不同时使用它,并使用相同的端口速度。
 673 
 674 // 避免使用115200波特因为16MHz Arduino 115200波特率超过2%速度误差(57600有0.8%的误差)
 675 //#define GPS_BAUD   38400       // GPS_BAUD will override SERIALx_COM_SPEED for the selected port
 676 
 677 /* GPS协议
 678 NMEA  - 标准NMEA协议。需要GGA,GSA与RMC语句
 679 UBLOX - U-Blox二进制协议,使用来自源码树的ublox配置文件(u-blox-config.ublox.txt)
 680 MTK_BINARY16 与 MTK_BINARY19 - 基于MTK3329芯片的GPS,使用DIYDrones二进制固件(v1.6 或 v1.9)
 681 在使用UBLOX与MTK_BINARY时你不需要在multiwii代码中使用GPS_FILTERING!!! */
 682 
 683 
 684 #define NMEA
 685 //#define UBLOX
 686 //#define MTK_BINARY16
 687 //#define MTK_BINARY19
 688 //#define INIT_MTK_GPS         // 初始化MTK GPS。使其使用选定的速度,5Hz更新速率与GGA & RMC语句或二进制的设置
 689 
 690 
 691 /* I2C GPS设备,使用一个独立的arduino + GPS设备制作
 692 包含一些导航函数
 693 由EOSBandi贡献   http://code.google.com/p/i2c-gps-nav/
 694 你必须使用I2CGpsNav r33以上版本 */
 695 /* all functionnalities allowed by SERIAL_GPS are now available for I2C_GPS: all relevant navigation computations are gathered in the main FC */
 696 
 697 #define I2C_GPS
 698 
 699 // 如果你的I2C GPS板有声纳支持
 700 //#define I2C_GPS_SONAR
 701 
 702 /* 通过LED闪烁表明GPS搜到了至少5颗有效的卫星 - 由MIS修改 - 使用常亮的LED(CRIUS AIO上为黄色)led作为星数指示器工作
 703 - GPS无定位 -> LED闪烁速度为收到GPS帧的速度
 704 - 定位并且星数小于5 -> LED关闭
 705 - 定位并且星数 >= 5 -> LED闪烁,闪一下表示5颗星,闪两下表示6颗星,三下表示7 ... */
 706 #define GPS_LED_INDICATOR
 707 
 708 // 启用MSP_WP命令,用于WinGUI显示与记录家与定点的位置
 709 #define USE_MSP_WP
 710 
 711 // 家的地点(HOME position)会在每次解锁时重置,解除注释此项来禁用它(你可以通过校准陀螺仪来设置家的地点)
 712 //#define DONT_RESET_HOME_AT_ARM
 713 
 714 /* 允许GPS导航控制头部方向 */
 715 
 716 // 飞行器面对着航点飞行,磁场保持必须为此开启
 717 #define NAV_CONTROLS_HEADING       1    //(**)
 718 // true - 飞行器以尾部首先飞来
 719 #define NAV_TAIL_FIRST             0    //(**)
 720 // true - 当飞行器到达家的位置时他会旋转至起飞时的角度
 721 #define NAV_SET_TAKEOFF_HEADING    1    //(**)
 722 
 723 /* 从这里获取你的磁偏角:http://magnetic-declination.com/
 724 转换度+分至小数的角度,通过 ==> 度+分*(1/60)
 725 注意磁偏角的符号,它可为负或正(西或东) */
 726 #define MAG_DECLINATION  -1.55f   //(中国广西南宁市江南区)
 727 
 728 // 添加向前预测滤波以补偿GPS延迟。代码基于Jason Short领导的滤波器实现
 729 #define GPS_LEAD_FILTER               //(**)
 730 
 731 // 添加5元素移动平均滤波器至GPS坐标,帮助消除GPS噪波但会增加延时,注释以禁用
 732 // 仅支持NMEA协议的GPS
 733 #define GPS_FILTERING                 //(**)
 734 
 735 // 如果我们与航点在此距离以内,我们则认为已到达航点(以cm为单位)
 736 #define GPS_WP_RADIUS              100      //(**)
 737 
 738 // 安全的航路点的距离,如果第一个航路点的距离大于这个数,将不执行任务(单位:米)
 739 //同时,下一个航点间的距离大于这个数任务也会被终止(也就是两个航点间距离不能大于这个数)
 740 #define SAFE_WP_DISTANCE           500      //(**)
 741 
 742 // 最大允许航行高度(米)高度自动控制不会超过这个高度
 743 #define MAX_NAV_ALTITUDE           100     //(**)
 744 
 745 //接近航点时的最小速度
 746 #define NAV_SPEED_MIN              100    // cm/sec //(**)
 747 //最大速度达到之间的航点
 748 #define NAV_SPEED_MAX              400    // cm/sec //(**)
 749 // 到达航点时减速到零(与nav_speed_min = 0类似)
 750 #define NAV_SLOW_NAV               0      //(**)
 751 // 在导航计算的偏航错误的权重因子(别改)
 752 #define CROSSTRACK_GAIN            .4     //(**)
 753 //导航时的最大倾斜输出
 754 #define NAV_BANK_MAX 3000                 //(**)
 755 
 756 //定义返回点高度。0是在返回点保持当时高度(米)
 757 #define RTH_ALTITUDE               15        //(**)
 758 //前往导航点前等待升高到预定高度(0-否,1-是)
 759 #define WAIT_FOR_RTH_ALT           1         //(**)
 760 
 761 //导航引擎接管气压定高模式工作
 762 #define NAV_TAKEOVER_BARO          1         //(**)
 763 
 764 //忽略油门杆的输入(只在气压定高模式)
 765 #define IGNORE_THROTTLE            1         //(**)
 766 
 767 //如果定义的范围大于0,飞行器将在超出此距离是自动切换到自动返航模式返回定义的返回点。
 768 #define FENCE_DISTANCE      600
 769 
 770 //这参数控制自动降落模式的降落速度. 100表示下降速度为50厘米/秒
 771 #define LAND_SPEED          100
 772 
 773 
 774 //#define ONLY_ALLOW_ARM_WITH_GPS_3DFIX      // 限制飞控只能在GPS获取到三维定位数据后解锁
 775 
 776 /**************************************************************************************/
 777 /***********************        LCD/OLED - 显示设置       *********************/
 778 /**************************************************************************************/
 779 
 780 /* http://www.multiwii.com/wiki/index.php?title=Extra_features#LCD_.2F_OLED */
 781 
 782     /*****************************    LCD种类              **********************************/
 783       /* 选择用于配置和遥测的LCD,见下方注解 */
 784 //#define LCD_DUMMY        // 无物理LCD附加。通过定义此与LCD_CONF,发射机遥杆可用于设置增益,通过观察LED闪烁。  
 785 //#define LCD_SERIAL3W    // Alex的初始变体使用3条导线,使用rx针脚进行传输@固定的9600波特率
 786 //#define LCD_TEXTSTAR    // 串口LCD:Cat's Whisker品牌的LCD_TEXTSTAR模块CW-LCD-02(拥有4个输入按键用于选择菜单)
 787 //#define LCD_VT100       // 串口LCD:vt100兼容终端仿真(blueterm,putty等)
 788 //#define LCD_TTY         // 串口LCD:用于通过线缆与arduino IDE“串口监视器”连接调整参数
 789 //#define LCD_ETPP        // I2C LCD:Eagle Tree品牌的Power Panel LCD,使用i2c(非串口)
 790 //#define LCD_LCD03       // I2C LCD:LCD03,使用i2c
 791 //#define LCD_LCD03S      // 串口LCD:lcd03通过串口9600波特率通信。
 792 //#define OLED_I2C_128x64 // I2C LCD: OLED http://www.multiwii.com/forum/viewtopic.php?f=7&t=1350
 793 //#define OLED_DIGOLE     // I2C OLED from http://www.digole.com/index.php?productID=550
 794 
 795 /******************************   显示设置   ***********************************/
 796 //#define LCD_SERIAL_PORT 0     // 在Pro Mini以及其他单串口板上只能设为0,在任何基于Mega的板子上可设置为你的选择
 797 
 798 //#define SUPPRESS_OLED_I2C_128x64LOGO  // 禁用OLED logo显示来节省储存
 799 
 800     /* 为获得更好的可读性,使用双倍字体高度。减少一半可见#行。
 801      * 每个页面的下半部分以按住shift的键盘文字作为名字:
 802      * 1 - ! , 2 - @ , 3 - # , 4 - $ , 5 - % , 6 - ^ , 7 - & , 8 - * , 9 - (
 803      * 你必须同时添加到你的lcd.遥测.*序列中
 804      */
 805 //#define DISPLAY_FONT_DSIZE //目前只能应用于OLED_I2C_128x64 OLED_DIGOLE
 806 
 807  /* 显示风格 - 通过LCD_ setting自动检测 - 仅在覆盖默认时激活 */
 808 //#define DISPLAY_2LINES
 809 //#define DISPLAY_MULTILINE
 810 //#define MULTILINE_PRE 2  // 多行配置菜单#之前的行
 811 //#define MULTILINE_POST 6 // 多行配置菜单#之前的行
 812 //#define DISPLAY_COLUMNS 16
 813 /********************************    导航     ***********************************/
 814     /* 用来导航LCD配置菜单的按键 */
 815 #define LCD_MENU_PREV 'p'
 816 #define LCD_MENU_NEXT 'n'
 817 #define LCD_VALUE_UP 'u'
 818 #define LCD_VALUE_DOWN 'd'
 819 
 820 #define LCD_MENU_SAVE_EXIT 's'
 821 #define LCD_MENU_ABORT 'x'
 822 
 823 /**************************************************************************************/
 824 /***********************      LCD配置菜单         **************************/
 825 /**************************************************************************************/
 826 
 827     /* 如果你准备将LCD或OLED用于调整参数,那么解除本行注释
 828      * http://www.multiwii.com/wiki/index.php?title=Extra_features#Configuration_Menu */
 829       //#define LCD_CONF
 830 
 831     /* 用于包含通过LCD进行AUX1 -> AUX4辅助开关切换的设置 */
 832       //#define LCD_CONF_AUX
 833 
 834     /* 可选排除一些功能 - 解除注释以禁用一些不需要的遥测页面或通道设置 */
 835       //#define SUPPRESS_LCD_CONF_AUX2
 836       //#define SUPPRESS_LCD_CONF_AUX34
 837 
 838 /**************************************************************************************/
 839 /***********************      LCD       遥测            **************************/
 840 /**************************************************************************************/
 841 
 842 /* to monitor system values (battery level, loop time etc. with LCD
 843  * http://www.multiwii.com/wiki/index.php?title=LCD_Telemetry */
 844 
 845 /********************************   激活     ***********************************/
 846 //#define LCD_TELEMETRY
 847 
 848  /* 在解除注释于此的一个遥测页面组合中启用自动跳转。 */
 849 //#define LCD_TELEMETRY_AUTO "123452679" // 升序显示1至9页
 850 //#define LCD_TELEMETRY_AUTO  "212232425262729" // 着重显示第2页
 851 
 852     /* 手动步进序列;序列的第一页在启动时加载以允许无交互时显示 */
 853     //#define LCD_TELEMETRY_STEP "0123456789" // 应包含一个0以允许关闭。
 854 
 855     /* 可选地排除一些功能 - 解除注释以禁用一些不需要的遥测页面 */
 856 //#define SUPPRESS_TELEMETRY_PAGE_1
 857 //#define SUPPRESS_TELEMETRY_PAGE_2 // 传感器读数
 858 //#define SUPPRESS_TELEMETRY_PAGE_3 // 复选框项
 859 //#define SUPPRESS_TELEMETRY_PAGE_4 // 遥控输入
 860 //#define SUPPRESS_TELEMETRY_PAGE_5 // 舵机和电机输出
 861 //#define SUPPRESS_TELEMETRY_PAGE_6 // 电池电压
 862 //#define SUPPRESS_TELEMETRY_PAGE_7 // gps
 863 //#define SUPPRESS_TELEMETRY_PAGE_8 // 告警状态
 864 //#define SUPPRESS_TELEMETRY_PAGE_9 // 循环和失败
 865 //#define SUPPRESS_TELEMETRY_PAGE_R // 重置
 866 
 867 /*可选的默认项目的一些遥测页面-完整的可用功能列表见LCD.h */
 868 //#define LCD_TELEMETRY_PAGE1 { output_V, output_mAh, }
 869 //#define LCD_TELEMETRY_PAGE2 { output_gyroX, output_gyroY, output_accZ, }
 870 //#define LCD_TELEMETRY_PAGE9 { output_fails, output_annex, output_debug0, output_debug3, }
 871 
 872 /********************************************************************/
 873 /****                             RSSI                           ****/
 874 /********************************************************************/
 875 //#define RX_RSSI
 876 //#define RX_RSSI_PIN A3
 877 //#define RX_RSSI_CHAN 8   //RSSI 注入指定的通道 (for PPM, Olrs, SBUS, etc.) (Starts at 0)
 878 
 879  /********************************************************************/
 880   /****                             蜂鸣器(BUZZER)                      ****/
 881   /********************************************************************/
 882     #define BUZZER
 883     #define RCOPTIONSBEEP         // 如果你想在遥控选项在通道Aux1至Aux4改变时让蜂鸣器响起,解除注释此项
 884     #define ARMEDTIMEWARNING 480  // (*) 在解锁一段时间[s]后触发警报以保护锂电。(如果你的发射机没有倒计时)
 885     //#define PILOTLAMP             //如果你在使用X-Arcraft导航灯那么解除注释
 886 
 887   /********************************************************************/
 888   /****           电池电压监控                                     ****/
 889   /********************************************************************/
 890    /* 用于V BAT(电池电压)监控
 891        在电阻分压后,我们在模拟V_BAT针脚上应获得[0V;5V]->[0;1023]
 892        通过R1=33k和R2=51k
 893        vbat = [0;1023]*16/VBATSCALE
 894        必须与#define BUZZER结合! */
 895 #define TanVBAT           //自己增加的建议的电压测量功能,需要同时启用VBAT(该模块淘宝可以搜索arduino 电压检测模块,就两块到七块这样,量程是最大25V的)
 896 #define VBAT              // 解除注释本行以激活vbat代码
 897 #define VBATSCALE       131 // (*) 如果读取到的电池电压与真实电压不同,修改该值
 898 #define VBATNOMINAL     126 // 12,6V满电标准电压 - 仅用于lcd.遥测
 899 #define VBATLEVEL_WARN1 110 // (*) (**) 10,7V
 900 #define VBATLEVEL_WARN2  100 // (*) (**) 9.9V
 901 #define VBATLEVEL_CRIT   99 // (*) 9.3V - 临界情况:如果vbat持续低于该值,就会触发警报长响
 902 #define NO_VBAT          16 // (*) 避免在没有电池时响起
 903 #define VBAT_OFFSET       0 //抵消0.1volts,加入有用的齐纳二极管的电压值
 904 
 905 /* 对多个电池进行监控
 906  * 必须同时启用VBAT,VBAT_CELLS
 907  */
 908 //#define VBAT_CELLS
 909 #define VBAT_CELLS_NUM 0 // 设置连接在模拟阵脚pin上的电池数量
 910 #define VBAT_CELLS_PINS {A0, A1, A2, A3, A4, A5 } // 将此设置为模拟引脚序列
 911 #define VBAT_CELLS_OFFSETS {0, 50, 83, 121, 149, 177 } // in 0.1 volts, gets added to voltage value  - useful for zener diodes
 912 #define VBAT_CELLS_DIVS { 75, 122,  98, 18, 30, 37 } // divisor for proportional part according to resistors - larger value here gives smaller voltage
 913 
 914   /********************************************************************/
 915   /****           功率计(电池容量监控)                ****/
 916   /********************************************************************/
 917 
 918    /* 启用电池能量消耗监控(以mAh考虑)
 919        允许在GUI中或通过LCD设置警戒值
 920        全部描述与操作方法请见此 http://www.multiwii.com/wiki/index.php?title=Powermeter
 921        有两个选项:
 922        1 - 硬件: - (使用硬件传感器,配置后将获得相当不错的结果)
 923        2 - 软件: - (使用plush与mystery电调可获得+-5%的料号结果,使用SuperSimple电调结果不佳)    */
 924     //#define POWERMETER_SOFT
 925     //#define POWERMETER_HARD
 926     #define PSENSORNULL 510 // (*) 设置0电流时analogRead()的值;I=0A时,我的传感器得到1/2 Vss;约为2.49伏;
 927                                   
 928     #define PINT2mA 132 // (*) 用于遥测显示:一个用在arduino模拟转换为mA时的整数(例4.9 / 37 * 100
 929                                    /*soft: use fictional value, start with 100.
 930                                    for hard and soft: larger PINT2mA will get you larger value for power (mAh equivalent) */
 931 //#define WATTS // 计算并显示实际瓦(=伏特×安培)需要powermeter_hard和VBAT
 932 
 933   /********************************************************************/
 934   /****                      高度保持                              ****/
 935   /********************************************************************/
 936 
 937   /*定高模式(AltHold)是使用自动油门,试图保持目前的高度的稳定模式。
 938      定高模式时高度仍然可以通过提高或降低油门控制,但中间会有一个油门死区,油门动作幅度超过这个死区时,飞行器才会响应你的升降动作
 939      当进入任何带有自动高度控制的模式,你目前的油门将被用来作为调整油门保持高度的基准。
 940      在进入高度保持前确保你在悬停在一个稳定的高度。
 941      飞行器将随着时间补偿不良的数值。只要它不会下跌过快,就不会有什么问题。
 942      离开高度保持模式时请务必小心,油门位置将成为新的油门,
 943      如果不是在飞行器的中性悬停位置,将会导致飞行器迅速下降或上升。默认设置是 +/-50 uncommend and change the value below if you want to change it. */
 944     #define ALT_HOLD_THROTTLE_NEUTRAL_ZONE    50
 945     //#define ALT_HOLD_THROTTLE_MIDPOINT        1500  // in us    - if uncommented, this value is used in ALT_HOLD for throttle stick middle point instead of initialThrottleHold parameter.
 946 
 947 
 948     /* 解除注释以禁用高度保持特性。
 949      * 此项可用于所有下列应用
 950      * + 你有一个气压传感器
 951      * + 想要高度值输出
 952      * + 不需要使用高度保持特性
 953      * + 想要节省储存空间
 954      */
 955     //#define SUPPRESS_BARO_ALTHOLD
 956 
 957   /********************************************************************/
 958   /****           高度爬升率测定器              (高度仪)           ****/
 959   /********************************************************************/
 960 
 961     /* 启用以获得来自上升/下降中的飞行器/飞机的声频反馈。
 962      * 需要工作中的气压计。
 963      * 目前,输出会通过串行线发送至启用中的vt100终端程序。
 964      * 有两种方式可选(启用其中一个或同时启用)
 965      * 方式1:使用来自气压计的短期移动(更大的代码尺寸)
 966      * 方式2:使用来自气压计的长期高度观察(更小的代码尺寸)
 967      */
 968     //#define VARIOMETER 12            // 可用值:12 = 方式 1 & 2 ;1 = 方式 1;2 = 方式 2
 969     //#define SUPPRESS_VARIOMETER_UP   // 如果不期望有用于向上移动的信号
 970     //#define SUPPRESS_VARIOMETER_DOWN // 如果不期望有用于向下移动的信号
 971     //#define VARIOMETER_SINGLE_TONE   // 仅使用一个声调(响铃);对未打补丁的vt100终端是必需的
 972 
 973  /********************************************************************/
 974   /****                     板子命名                               ****/
 975   /********************************************************************/
 976 
 977     /*
 978      * 这个名字会与MultiWii版本号共同显示
 979      * 在打开电源时显示在LCD上。
 980      * 如果你没有显示设备那么你可以启用LCD_TTY并
 981      * 使用arduino IDE的串口监控器来查看此信息。
 982      *
 983      * 你必须保持此处文本的格式!
 984      * 它必须总共有16个字母,
 985      * 最后4个字母将会被版本号覆盖。
 986      */
 987     #define BOARD_NAME "MultiWii   V-.--"
 988     //                  123456789.123456
 989 
 990  /*************      在EEPROM中支持多个配置参数文件      ************/
 991     //#define MULTIPLE_CONFIGURATION_PROFILES
 992 
 993   /*************      do no reset constants when change of flashed program is detected ***********/
 994     #define NO_FLASH_CHECK
 995 
 996 /*************************************************************************************************/
 997 /*****************                                                                 ***************/
 998 /****************               第 7 部分 - 调试 & 开发者                           **************/
 999 /*****************                                                                 ***************/
 /*************************************************************************************************/
 
 #define VBAT_PRESCALER 16 //设置为16,如果vbatscale将超过255
 
  /**************************************************************************************/
   /********   使用扩展范围[0-2000]微秒的特殊电调              ********************/
   /**************************************************************************************/
     //#define EXT_MOTOR_RANGE // 在用场效应管驱动空心杯时必须注释它,否则电机上电就转
 
 /**************************************************************************************/
 /********  刷电调 ****************************************************************/
 /**************************************************************************************/
 // for 328p proc
 //#define EXT_MOTOR_32KHZ
 //#define EXT_MOTOR_4KHZ
 //#define EXT_MOTOR_1KHZ
 
 // for 32u4 proc
 //#define EXT_MOTOR_64KHZ
 //#define EXT_MOTOR_32KHZ
 //#define EXT_MOTOR_16KHZ
 //#define EXT_MOTOR_8KHZ
 
   /**************************************************************************************/
   /***********************     电机,舵机和其他的预置             ***********************/
   /**************************************************************************************/
     /* 当油门命令在低位时电机将不会旋转
        这是立即停止电机的替代方案 */
 #define MOTOR_STOP
 
   /* 一些遥控器的中立点不是1500。可以在此修改 */
 #define MIDRC 1500
 
  /***********************        舵机刷新率                   ***********************/
     /* 默认50Hz舵机刷新率 */
 #define SERVO_RFR_50HZ
 
     /* 升至160Hz舵机刷新率 .. 用于多数模拟舵机 */
     //#define SERVO_RFR_160HZ
 
     /* 升至300Hz刷新率,它越快越好(100-300Hz取决于使用的舵机和舵机状态)。
        用于数字舵机
        不要用于模拟舵机!它们可能遭到破坏。(一些可以使用,但请非常小心) */
 //#define SERVO_RFR_300HZ
 
   /***********************             硬件PWM舵机              ***********************/ 
     /* 硬件PWM舵机输出用于Arduino Mega..移动至:
   Pitch   = pin 44
   Roll    = pin 45
   CamTrig = pin 46
   SERVO4  = pin 11 (aileron left for fixed wing or TRI YAW SERVO)
   SERVO5  = pin 12 (aileron right for fixed wing)
   SERVO6  = pin 6   (rudder for fixed wing)
   SERVO7  = pin 7   (elevator for fixed wing)
   SERVO8  = pin 8   (motor for fixed wing)       */
   
 /*此选项禁用其他用于舵机的软件PWM - 仅有五个硬件控制舵机可用      */ 
 #define MEGA_HW_PWM_SERVOS
 
 /* HW PWM Servo outputs for 32u4 NanoWii, MicroWii etc. - works with either the variable SERVO_RFR_RATE or
  * one of the 3 fixed servo.refresh.rates *
  * Tested only for heli_120, i.e. 1 motor + 4 servos, moves..
  * motor[0] = motor       = pin  6
  * servo[3] = nick  servo = pin 11
  * servo[4] = left  servo = pin 10
  * servo[5] = yaw   servo = pin  5
  * servo[6]  = right servo= pin  9
  */
 //#define A32U4_4_HW_PWM_SERVOS
 
 #define SERVO_RFR_RATE  50    // In Hz, you can set it from 20 to 400Hz, used only in HW PWM mode for mega and 32u4
 //#define SERVO_PIN5_RFR_RATE  200    // separate yaw pwm rate.
 // In Hz, you can set it from 20 to 400Hz, used only in HW PWM mode for 32u4
 
 
   /********************************************************************/
   /****                        节约记忆体空间                      ****/
   /********************************************************************/
 
     /* 针对Flash和RAM内存的普遍短缺 leonardo m32u4 and others */
 
     /**** 可以通过禁用串口命令处理来实现。***
      * 它_不会_对RXserial,Spektrum,GPS的处理产生影响。这些不会受到影响,仍可以照常工作。
      * 启用下列选项中其中一项或两项  */
 
     /* 移除所有新MultiWii串行协议命令的处理。
      * 这将会禁用GUI,winGUI,android应用以及其他所有使用MSP的程序。
      * 你必须找到其他调试参数的方法(如LCD_CONF)或保持默认。
      * 如果你是通过i2c或串口/蓝牙使用LCD/OLED,可以放心使用 */
     //#define SUPPRESS_ALL_SERIAL_MSP // 节省约2700字节
 
     /* 移除其他串行命令处理。
      * 包含通过串口操作lcd.配置菜单,lcd.遥测与永久.日志。
      * 通过在发射机上摇杆输入进行操作不会受到影响,操作起来是一样的。  */
     //#define SUPPRESS_OTHER_SERIAL_COMMANDS // 节省约0至100字节,取决于启用的特性
 
     /**** 保证代码中无初始设置和复位的缺陷。
      这需要一个手动初始设置的PID等手动写defaults.mwi;
       reset in GUI will not work on PIDs
      */
     //#define SUPPRESS_DEFAULTS_FROM_GUI
     
     //#define DISABLE_SETTINGS_TAB  // Saves ~400bytes on ProMini
 
   /********************************************************************/
   /****          诊断                                              ****/
   /********************************************************************/
 
     /* 记录像最大周期时间与其他可能的值
        记录值可通过LCD配置看到
        设为1,启用'R'选项来重置值,最大电流,最大高度
        设为2,添加最大/最小周期时间
        设为3,以每个电机为单位添加额外的功耗(它使用一个很大的数组并且很吃储存,如果POWERMETER <> PM_SOFT) */
 //#define LOG_VALUES 1
 
     /* 永久记录至eeprom - 可在(多数)升级与参数重置中保留下来。
      * 常用于追踪控制板生命周期中的飞行次数等。
      * 写入至eeprom末端 - 不应与已储存的参数冲突。
      * 记录的值:累积的生存时间,#重启/重置/初始化事件,#解锁事件,#锁定事件,最后解锁时间,
      *                #失控保护@锁定,#i2c_errs@锁定
      * 设置你的mcu的eeprom的尺寸以激活:promini 328p:1023;2560:4095。
      * 启用一项或更多选项以显示记录
      */
     //#define LOG_PERMANENT_SHOW_AT_STARTUP // 启用以在启动时显示记录
     //#define LOG_PERMANENT_SHOW_AT_L // 启用以在接收到'L'时显示记录
     //#define LOG_PERMANENT_SHOW_AFTER_CONFIG // 启用以在退出LCD配置菜单之后显示记录
     //#define LOG_PERMANENT_SERVICE_LIFETIME 36000 // 以秒为单位;在10小时的解锁时间之后,在启动时响起服务警告
 
     /* 添加调试代码
        不需要并且也不推荐在平常运行时开启
        将会额外添加代码,可能会使主循环变慢或使飞行器不可飞行 */
     //#define DEBUG
     //#define DEBUG_FREE // will add 'F' command to show free memory
 
     /* 使用此项在没有发射机时触发LCD配置 - 仅用于调试 - 不要在此项激活的情况下飞行 */
     //#define LCD_CONF_DEBUG
 
     /* 使用此项在没有发射机时触发遥测 - 仅用于调试 - 不要在此项激活的情况下飞行 */
     //#define LCD_TELEMETRY_DEBUG    //该形式在所有的屏幕间轮换,LCD_TELEMETRY_AUTO必须同时被定义。
     //#define LCD_TELEMETRY_DEBUG 6  //该形式停在特定的屏幕上。
 
     /* 启用从飞行器到GUI的字符串传送 */
     //#define DEBUGMSG
 
 
   /********************************************************************/
   /****           电调校准                                         ****/
   /********************************************************************/
 
     /* 同时校准所有连接到MWii的电调(可以避免来回连接每一个电调)
        警告:这将产生一个特别版本的MultiWii代码
        这个特殊的版本是不可以用来飞行的。它只可以用来校准电调
        使用方法详见 http://code.google.com/p/multiwii/wiki/ESCsCalibration */
     #define ESC_CALIB_LOW  MINCOMMAND
     #define ESC_CALIB_HIGH 2000
     //#define ESC_CALIB_CANNOT_FLY  // 解除注释激活此项,千万注意,校准电调时请拆卸下你的螺旋桨!
 
   /****           内部频率                                         ****/
     /* 在主循环中的稀有循环操作的频率,取决于周期时间
        时间基数为主循环周期时间 - 值为6意味着每六个主循环触发一次操作
        示例:周期时间大约在3ms,执行操作就在每 6*3ms=18ms
        取值范围 [1; 65535] */
     #define LCD_TELEMETRY_FREQ 23       // 通过串口发送遥测数据 23 <=> 60ms <=> 16Hz (只发送隔行数据,8Hz上传速率)
     #define LCD_TELEMETRY_AUTO_FREQ 967 // 翻到下一个遥测页面 967 <=> 3s
     #define PSENSOR_SMOOTH 16           // len of averaging vector for smoothing the PSENSOR readings; should be power of 2; set to 1 to disable
     #define VBAT_SMOOTH 16              // len of averaging vector for smoothing the VBAT readings; should be power of 2; set to 1 to disable
     #define RSSI_SMOOTH 16              // len of averaging vector for smoothing the RSSI readings; should be power of 2; set to 1 to disable
 
   /********************************************************************/
   /****                            桨/马达动平衡                   ****/
   /********************************************************************/
   /*                   !!! No Fly Mode !!!                            */ 
         
     //#define DYNBALANCE   // (**) 用gui调整动平衡
 
   /********************************************************************/
   /****          回归测试                                          ****/
   /********************************************************************/
 
     /* 只用作开发用途:
        考虑到测试编译时,不同的config参数是保持在一起的,所以可以更简单地重复测试config设置,
        它的意义是可以帮助检测编译时的错误,让多种不同的特性以协调的方式运作。
        这并不是用来制作你自己的飞行固件的。
        使用方法:
        - 不要在config.h中做任何设置,
        - 启用#define COPTERTEST 1,然后编译
        - 如果可能的话,检查程序大小
        - 重复测试其他值2, 3, 4等。
         */
     //#define COPTERTEST 1
 
 /*************************************************************************************************/
 /*****************                                                                 ***************/
 /****************    第 8 部分 - 不推荐使用                                                *******/
 /*****************                                                                 ***************/
 /*************************************************************************************************/
 
   /*这些功能将在未来被移除的。不再更新
    *基于这样的特点功能。所有这些功能默认是关闭的。
    */
 
   /**************************    WMP的电源引脚    *******************************/
   //#define D12_POWER      // Use D12 on PROMINI to power sensors. Will disable servo[4] on D12
   /* disable use of the POWER PIN (allready done if the option RCAUXPIN12 is selected) */
   #define DISABLE_POWER_PIN
 
 
 /*************************************************************************************************/
 /****                            可配置参数结束                                               ****/
 /*************************************************************************************************/
 
 #endif /* CONFIG_H_ */          

multiwii 2.4配置页面中文注释的更多相关文章

  1. 关于iBatis配置xml文件时出现中文注释出错的一个问题(很坑爹.)

    才开始我没有使用SqlMap.properties来配置连接信息.所以直接用ctrl + shift + C然后往里面添加的中文注释 例: <!-- 注释--> 运行的时候报: Error ...

  2. impress.js 中文注释

    impress.js 中文注释 玄魂 /** * impress.js *(本翻译并未完全遵照原作者的注释翻译) * Impress.js 是受 Prezi启发,基于现代浏览器的 CSS3 与 Jav ...

  3. Php.ini 中文注释详细

    Php.ini 中文注释 这个文件控制了PHP许多方面的观点.为了让PHP读取这个文件,它必须被命名为   ; ´php.ini´.PHP 将在这些地方依次查找该文件:当前工作目录:环境变量PHPRC ...

  4. Solr7.3.0入门教程,部署Solr到Tomcat,配置Solr中文分词器

    solr 基本介绍 Apache Solr (读音: SOLer) 是一个开源的搜索服务器.Solr 使用 Java 语言开发,主要基于 HTTP 和 Apache Lucene 实现.Apache ...

  5. Nginx的配置参数中文说明

    Nginx的配置参数中文说明   前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行.其特点是占有内存少,并发能力强 ...

  6. freemarker页面中文乱码

    一.前言 简单的记录freemarker遇到的错误问题:ftl页面中文乱码 由于freemarker整合在ssm框架中,所以笔者直接贴配置代码 <beans xmlns="http:/ ...

  7. myeclipse中java文件中文注释乱码问题

    在myeclipse中,有时打开java文件会发现中文注释全为乱码了,这个问题主要是因为编码的问题没有设置好,一个重要的原则就是保证所有的编码一致才不会发生乱码 出现乱码,需要知道三个地方的编码格式: ...

  8. hive创建表带中文注释报错解决方法

    hive创建带有中文注释的表报错: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask ...

  9. 如何彻底解决jsp页面中文乱码及数据库乱码

    最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下 ...

随机推荐

  1. Codeforces 307 div2 E.GukiZ and GukiZiana 分块

    time limit per test 10 seconds memory limit per test 256 megabytes input standard input output stand ...

  2. 北京电子科技学院(BESTI)实验报告1

    北京电子科技学院(BESTI)实验报告1 课程: 信息安全系统设计基础 班级:1452.1453 姓名:(按贡献大小排名)郑凯杰 .周恩德 学号:(按贡献大小排名)20145314 .20145217 ...

  3. 在android studio 中使用applicationid的问题

    现在我需要对项目app的某个功能做性能测试,主要测试耗电量的多少. 1.我想到的方式是,我需要在同一台手机测试,同一个应用,需要安装在手机两次,第二次安装不覆盖第一次的安装. 在android stu ...

  4. POJ 2431Expedition

    Description A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Bein ...

  5. Salt安装(yum不可用时)

        salt-master安装   [salt-master]# yum install salt-master   或者 curl -L http://bootstrap.saltstack.o ...

  6. 西门子成立next47部门,斥资十亿欧元投资VR/AR等初创公司

       近日,西门子公司在慕尼黑举行的"西门子创新日"现场,宣布了三个关于"创新"的新动作.首先,超过六成员工的创新应用得到肯定,其中有 25 个项目获得总数高达 ...

  7. [NOIP2012]借教室 题解

    题目大意: 有一个n个数的数列,m个操作,第i个操作使[li,ri]区间建di,问第几个操作使数列中出现负数. 思路: 暴力显然过不了,那么就可以优化了,不难想到线段树,显然需要良好的姿势,那么就差分 ...

  8. jquery mobile系列问题汇总整理(传播知识,利己利人)

    我在用jquery mobile做项目时,遇到jm在下拉框等组件里不能正常动态更新内容,查找了相关资料,在这里抛砖引玉,先提供一个解决下拉框内容写入更新的解决方法: jm解决下拉框内容写入的方法可以这 ...

  9. Daily Scrum02 12.07

    最近大家都在赶编译的大作业,没日没夜的码代码,调试,大家都很辛苦,但是,我们团队的工作,大家也不能懈怠啊! 大家要顶住压力,加油努力啊! Member 任务进度 下一步工作 吴文会 就总结点进行汇报 ...

  10. 利用JS实现自定义滚动条

    一般默认的滚动条会比较丑,我们可以用简单的js实现自定义滚动条的功能: 代码如下: <!doctype html> <html> <head> <meta c ...