Pārlūkot izejas kodu

1,按照小牙盘原协议增加用户参数1、用户参数2、马达参数中部分数据的读写;
2,单力矩和三力矩均按照单力矩进行标定。

dd 3 mēneši atpakaļ
vecāks
revīzija
63f27ada7e

+ 42 - 45
1.FrameLayer/Source/main.c

@@ -299,7 +299,6 @@ int  main(void)
 ****************************************************************/
 void mn_voParaSet(void)
 {
- 
      flash_voSysParaRead();//i2c_voSysparaReadFromEE(&i2c_stRXCRCOut);
      flash_voErrorRead();
      flash_HistoryRead();
@@ -435,7 +434,7 @@ void mn_voParaSet(void)
                 torsensor_stTorSensorCof.uwBikeTorStep4ADC = Syspara2.stSensorPara.uwBikeTor4StepADC.uwReal ;//I2C_uwSensorRead[13];
                 cadence_stFreGetCof.uwTorque_NumbersPulses = Syspara2.stSensorPara.uwTorque_SensorPulseNm.uwReal ;//I2C_uwSensorRead[14];
                 bikespeed_stFreGetCof.uwNumbersPulses =Syspara2.stSensorPara.uwBikeSpdSensorPulseNm.uwReal ;// I2C_uwSensorRead[15];
-		cadence_stFreGetCof.uwCad_NumbersPulses =Syspara2.stSensorPara.uwCad_SensorPulseNm.uwReal;// I2C_uwSensorRead[16];
+                cadence_stFreGetCof.uwCad_NumbersPulses =Syspara2.stSensorPara.uwCad_SensorPulseNm.uwReal;// I2C_uwSensorRead[16];
             }
             else
             {
@@ -473,8 +472,8 @@ void mn_voParaSet(void)
                     ass_ParaCong.uwRearLightDuty = Syspara2.stBikePara2.uwRearLightDuty.uwReal  ;//I2C_uwBikePara2Read[2];
                     ass_ParaCong.swDeltaBikeSpeedLimit =Syspara2.stBikePara2.swDeltaBikeSpeedLimit.swReal;// (SWORD) I2C_uwBikePara2Read[3];
                 }
-                else
-                {}
+            else
+            {}
       }
 //      mn_voControlPareSet();
       cp_stFlg.ParaUseEEFinishFlg = TRUE;
@@ -677,45 +676,45 @@ void mn_voParaUpdate(void)
                 
           
         }
- if (cp_stFlg.ParaRideInfoUpdateFlg == TRUE)
-    {
-        ass_stCalCoef.ucAssistRatioGain[0] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain1;
-        ass_stCalCoef.ucAssistRatioGain[1] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain2;
-        ass_stCalCoef.ucAssistRatioGain[2] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain3;
-        ass_stCalCoef.ucAssistRatioGain[3] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain4;
-        ass_stCalCoef.ucAssistRatioGain[4] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain5;
-        
-        ass_stCalCoef.ucAssistAccelerationGain[0] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain1;
-        ass_stCalCoef.ucAssistAccelerationGain[1] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain2;
-        ass_stCalCoef.ucAssistAccelerationGain[2] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain3;
-        ass_stCalCoef.ucAssistAccelerationGain[3] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain4;
-        ass_stCalCoef.ucAssistAccelerationGain[4] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain5;
-        
-        ass_stCalCoef.ucMaxCurrentGain[0] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain1;
-        ass_stCalCoef.ucMaxCurrentGain[1] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain2;
-        ass_stCalCoef.ucMaxCurrentGain[2] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain3;
-        ass_stCalCoef.ucMaxCurrentGain[3] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain4;
-        ass_stCalCoef.ucMaxCurrentGain[4] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain5;
-        
-        ass_stCalCoef.ucMaxTorqueGain[0] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain1;
-        ass_stCalCoef.ucMaxTorqueGain[1] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain2;
-        ass_stCalCoef.ucMaxTorqueGain[2] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain3;
-        ass_stCalCoef.ucMaxTorqueGain[3] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain4;
-        ass_stCalCoef.ucMaxTorqueGain[4] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain5;
-
-        cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
-        cp_stFlg.ParaRideInfoUpdateFlg = FALSE;
-    }
+        if (cp_stFlg.ParaRideInfoUpdateFlg == TRUE)
+        {
+            ass_stCalCoef.ucAssistRatioGain[0] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain1;
+            ass_stCalCoef.ucAssistRatioGain[1] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain2;
+            ass_stCalCoef.ucAssistRatioGain[2] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain3;
+            ass_stCalCoef.ucAssistRatioGain[3] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain4;
+            ass_stCalCoef.ucAssistRatioGain[4] = MC_UpcInfo.stRideParaInfo.ucAssistRatioGain5;
+
+            ass_stCalCoef.ucAssistAccelerationGain[0] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain1;
+            ass_stCalCoef.ucAssistAccelerationGain[1] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain2;
+            ass_stCalCoef.ucAssistAccelerationGain[2] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain3;
+            ass_stCalCoef.ucAssistAccelerationGain[3] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain4;
+            ass_stCalCoef.ucAssistAccelerationGain[4] = MC_UpcInfo.stRideParaInfo.ucAssistAccelerationGain5;
+
+            ass_stCalCoef.ucMaxCurrentGain[0] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain1;
+            ass_stCalCoef.ucMaxCurrentGain[1] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain2;
+            ass_stCalCoef.ucMaxCurrentGain[2] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain3;
+            ass_stCalCoef.ucMaxCurrentGain[3] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain4;
+            ass_stCalCoef.ucMaxCurrentGain[4] = MC_UpcInfo.stRideParaInfo.ucMaxCurrentGain5;
+
+            ass_stCalCoef.ucMaxTorqueGain[0] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain1;
+            ass_stCalCoef.ucMaxTorqueGain[1] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain2;
+            ass_stCalCoef.ucMaxTorqueGain[2] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain3;
+            ass_stCalCoef.ucMaxTorqueGain[3] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain4;
+            ass_stCalCoef.ucMaxTorqueGain[4] = MC_UpcInfo.stRideParaInfo.ucMaxTorqueGain5;
+
+            cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
+            cp_stFlg.ParaRideInfoUpdateFlg = FALSE;
+        }
         if (cp_stFlg.ParaBikeInfo2UpdateFlg == TRUE)
-           {
-               ass_ParaCong.uwNoneOBCEnable = MC_UpcInfo.stBikeInfo2.uwNoneOBCEnable;
-               ass_ParaCong.uwRearLightCycle = MC_UpcInfo.stBikeInfo2.uwRearLightCycle;
-               ass_ParaCong.uwRearLightDuty = MC_UpcInfo.stBikeInfo2.uwRearLightDuty;
-               ass_ParaCong.swDeltaBikeSpeedLimit = MC_UpcInfo.stBikeInfo2.swDeltaBikeSpeedLimit;
-
-               cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
-               cp_stFlg.ParaBikeInfo2UpdateFlg = FALSE;
-           }
+        {
+           ass_ParaCong.uwNoneOBCEnable = MC_UpcInfo.stBikeInfo2.uwNoneOBCEnable;
+           ass_ParaCong.uwRearLightCycle = MC_UpcInfo.stBikeInfo2.uwRearLightCycle;
+           ass_ParaCong.uwRearLightDuty = MC_UpcInfo.stBikeInfo2.uwRearLightDuty;
+           ass_ParaCong.swDeltaBikeSpeedLimit = MC_UpcInfo.stBikeInfo2.swDeltaBikeSpeedLimit;
+        
+           cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
+           cp_stFlg.ParaBikeInfo2UpdateFlg = FALSE;
+        }
         cp_stFlg.ParaUpdateFlg = FALSE;
     }
 }
@@ -748,13 +747,11 @@ void mn_voEEUperParaUpdate(void)
         Syspara2.stMotorPara.uwJD.uwReal = cp_stMotorPara.swJD;
         Syspara2.stMotorPara.uwTorMaxNm.uwReal = cp_stMotorPara.swTorMax;
     }
-    Syspara2.stBikePara.swDeltPerimeter.swReal = ass_ParaCong.swDeltPerimeter;
     if (MC_UpcInfo.stBikeInfo.uwSaveFlg == TRUE)
     {
         Syspara2.stBikePara.uwWheelPerimeter.uwReal = ass_ParaCong.uwWheelPerimeter;
         Syspara2.stBikePara.swDeltPerimeter.swReal = ass_ParaCong.swDeltPerimeter;
-        Syspara2.stBikePara.uwMechRationMotor.uwReal= ass_ParaCong.uwMechRationMotorEEPROM;
-        //Syspara2.stBikePara.uwMechRationMotor.uwReal = (UWORD)(((ULONG)ass_ParaCong.uwMechRationMotor*1000)/1024);
+        Syspara2.stBikePara.uwMechRationMotor.uwReal= ass_ParaCong.uwMechRationMotorEEPROM;        //Syspara2.stBikePara.uwMechRationMotor.uwReal = (UWORD)(((ULONG)ass_ParaCong.uwMechRationMotor*1000)/1024);
         Syspara2.stBikePara.uwThrottleMaxSpdKmH.uwReal = ass_ParaCong.uwThrottleMaxSpdKmH;
         Syspara2.stBikePara.uwCartSpdKmH.uwReal = ass_ParaCong.uwCartSpdKmH;
         Syspara2.stBikePara.uwNmFrontChainring.uwReal = ass_ParaCong.uwNmFrontChainring;

+ 72 - 72
3.BasicFunction/Source/usart.c

@@ -595,16 +595,16 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
         case 0x1A00: //按小牙盘原协议返回控制参数1
         {
             MC_ConfigParam1_Struct_t MC_ConfigParam1;
-            MC_ConfigParam1.GasCtrlMode_Param = (MC_UpcInfo.stBikeInfo.uwThrottleMaxSpdKmH == 0) ? 0x55 : 0xAA;
+            MC_ConfigParam1.GasCtrlMode_Param = MC_UpcInfo.stBikeInfo.uwThrottleMaxSpdKmH;
             MC_ConfigParam1.StarModel = MC_UpcInfo.stBikeInfo.uwStartMode;
             MC_ConfigParam1.StopTime = 100;
-            MC_ConfigParam1.SpeedLimit = MC_UpcInfo.stAssistInfo.uwAssistLimitBikeSpdStart;
+            MC_ConfigParam1.SpeedLimit = MC_UpcInfo.stAssistInfo.uwAssistLimitBikeSpdStart / 10;
             MC_ConfigParam1.Deceleration = 3;
             MC_ConfigParam1.TeethNum_F = MC_UpcInfo.stBikeInfo.uwNmFrontChainring;
             MC_ConfigParam1.TeethNum_B = MC_UpcInfo.stBikeInfo.uwNmBackChainring;
             MC_ConfigParam1.CurrentLimit = MC_UpcInfo.stTestParaInfo.uwPwrLimit / MC_UpcInfo.stMotorInfo.uwRVolV;
-            MC_ConfigParam1.TempTH_Alarm = MC_UpcInfo.stMContorlInfo.uwPwrLimitStartCe;
-            MC_ConfigParam1.TempTH_Protect = MC_UpcInfo.stMContorlInfo.uwAlamOverHeatCe;
+            MC_ConfigParam1.TempTH_Alarm = MC_UpcInfo.stMContorlInfo.uwPwrLimitStartCe + 40;
+            MC_ConfigParam1.TempTH_Protect = MC_UpcInfo.stMContorlInfo.uwAlamOverHeatCe + 40;
             MC_ConfigParam1.NoPBU_Flag = (MC_UpcInfo.stBikeInfo2.uwNoneOBCEnable == 0xAA) ? 0xAA : 0x55;;
             MC_ConfigParam1.WheelSize = MC_UpcInfo.stBikeInfo.uwWheelPerimeter;
             MC_ConfigParam1.SerialNum = MC_UpcInfo.stTestParaInfo.RunModelSelect;
@@ -629,6 +629,40 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
             break;
         }
 
+        case 0x1B20: //按小牙盘原协议写入部分控制参数
+        {
+            MC_UpcInfo.stBikeInfo.uwThrottleMaxSpdKmH = Data[0];
+            MC_UpcInfo.stBikeInfo.uwStartMode = Data[1];
+            MC_UpcInfo.stAssistInfo.uwAssistLimitBikeSpdStart = Data[4] * 10;
+            MC_UpcInfo.stAssistInfo.uwAssistLimitBikeSpdStop = Data[4] * 10 + 20;
+            MC_UpcInfo.stBikeInfo.uwNmFrontChainring = Data[6];
+            MC_UpcInfo.stBikeInfo.uwNmBackChainring = Data[7];
+            MC_UpcInfo.stTestParaInfo.uwPwrLimit = MC_UpcInfo.stMotorInfo.uwRVolV * Data[8];
+            MC_UpcInfo.stBikeInfo.uwWheelPerimeter = Data[12];
+            MC_UpcInfo.stTestParaInfo.RunModelSelect = Data[13];
+            MC_UpcInfo.stSensorInfo.uwBikeSpdSensorPulseNm = Data[24];
+            MC_UpcInfo.stMContorlInfo.uwAlamUVolV = (UWORD)Data[28] + (Data[29] << 8);
+            MC_UpcInfo.stBikeInfo.uwCartSpdKmH = Data[30];
+
+            MC_UpcInfo.stBikeInfo.uwSaveFlg = TRUE;
+            MC_UpcInfo.stAssistInfo.uwSaveFlg = TRUE;
+            MC_UpcInfo.stTestParaInfo.uwSaveFlg = TRUE;
+            MC_UpcInfo.stSensorInfo.uwSaveFlg = TRUE;
+            MC_UpcInfo.stMContorlInfo.uwSaveFlg = TRUE;
+
+            cp_stFlg.ParaSaveEEFlg = TRUE;
+            cp_stFlg.ParaUpdateFlg = TRUE;
+            cp_stFlg.ParaBikeInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaAInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
+            cp_stFlg.ParaSensorInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaMCInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaMotorDriveUpdateFinishFlg = TRUE;                    
+            cp_stFlg.TestParaInfoUpdateFlg =TRUE;
+            SendData(ptUartTx, ID_MC_BC, MODE_REPORT, 0xA903, (UBYTE *)"ACK");
+            break;
+        }
+
         case 0x1C00: //按小牙盘原协议返回马达参数
         {
             MC_MotorParam_Struct_t MC_MotorParam;
@@ -646,6 +680,27 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
             break;
         }
 
+        case 0x1D10: //按小牙盘原协议写入马达参数
+        {
+            MC_UpcInfo.stMotorInfo.uwRPwrWt = (UWORD)(Data[0] + (Data[1] << 8));
+            MC_UpcInfo.stMotorInfo.uwRSpdRpm = (UWORD)(Data[2] + (Data[3] << 8));
+            MC_UpcInfo.stMotorInfo.uwRsmOhm = (UWORD)(Data[4] + (Data[5] << 8));
+            MC_UpcInfo.stMotorInfo.uwLquH = (UWORD)(Data[6] + (Data[7] << 8));
+            MC_UpcInfo.stMotorInfo.uwLduH = (UWORD)(Data[8] + (Data[9] << 8));
+            MC_UpcInfo.stMotorInfo.uwFluxmWb = ((UWORD)(Data[10] + (Data[11] << 8)) * 45189 / Data[13]) >> 13;//Flux = V(@1000rpm) / 1.732 / (2 * 3.14 * 1000 * p / 60)
+            MC_UpcInfo.stMotorInfo.uwRVolV = (UWORD)(Data[12] * 10);
+            MC_UpcInfo.stMotorInfo.uwPolePairs = Data[13];
+
+            MC_UpcInfo.stMotorInfo.uwSaveFlg = TRUE;
+
+            cp_stFlg.ParaSaveEEFlg = TRUE;
+            cp_stFlg.ParaUpdateFlg = TRUE;
+            cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
+            cp_stFlg.ParaMInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaMotorDriveUpdateFinishFlg = TRUE;
+            SendData(ptUartTx, ID_MC_BC, MODE_REPORT, 0xA903, (UBYTE *)"ACK");
+        }
+
         case 0x1E00: //查询历史信息
         {
             SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xB74C, (UBYTE *)&MC_UpcInfo.stHistoryInfo.uwOpenTimes);
@@ -660,10 +715,8 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
         
         case 0x2000: //小牙盘原单力矩读零点
         {
-            #ifndef TORSENSOR3NUM
             UBYTE TempData[24] = {0,};
             SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xA318, (UBYTE*)TempData);
-            #endif
             break;
         }
 
@@ -792,21 +845,18 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
         }
 
         case 0x2900: //小牙盘原单力矩查询校正信息
-        {
-            #ifndef TORSENSOR3NUM
+        {        
             UBYTE DataTemp[4]; //Byte1~Byte2:启动值,取13Nm采集值;Byte3~Byte4:校正系数,取75Nm采集值/375
             DataTemp[0] = MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC;
             DataTemp[1] = MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC >> 8;
             DataTemp[2] = MC_UpcInfo.stSensorInfo.uwBikeTor4StepADC * 100 / 375; //AD * 100 / 400
             DataTemp[3] = 0;
             SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xAA04, (UBYTE*)DataTemp);
-            #endif
             break;
         }
 
         case 0x2A01: //小牙盘原单力矩写入力矩传感器标定系数,根据系数更新13Nm, 35Nm, 55Nm, 75Nm默认系数
         {            
-            #ifndef TORSENSOR3NUM
             MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC = 65 * Data[0] / 100;
             MC_UpcInfo.stSensorInfo.uwBikeTor2StepADC = 175 * Data[0] / 100;
             MC_UpcInfo.stSensorInfo.uwBikeTor3StepADC = 275 * Data[0] / 100;
@@ -816,11 +866,10 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
             cp_stFlg.ParaSensorInfoUpdateFlg = TRUE;
             cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
             SendData(ptUartTx, ID_MC_BC, MODE_REPORT, 0xA903, (UBYTE *)"ACK");
-            #endif
             break;
         }
 
-        case 0x2B02: //小牙盘原单力矩和三力矩写入力矩传感器启动值
+        case 0x2B02: //小牙盘原单力矩写入启动值
         {
             //更新13Nm采集值
             UWORD DataTemp = 0;
@@ -906,72 +955,23 @@ void DataProcess(USART_Buf_TypeDef* ptUartTx, UWORD ID, UBYTE Mode, UWORD Cmd, U
             break;
         }
 
-        case 0x3201: //小牙盘原三力矩读零点
+        case 0x3120: //按小牙盘原协议写入控制参数2
         {
-            #ifdef TORSENSOR3NUM
-            UBYTE DataTemp[26] = {0, };
-            DataTemp[0] = Data[0];
-            switch(DataTemp[0])
-            {
-                case 1:
-                {
-                    DataTemp[23] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow1;
-                    DataTemp[24] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow1 >> 8;
-                    break;
-                }
-                case 2:
-                {
-                    DataTemp[23] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow2;
-                    DataTemp[24] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow2 >> 8;
-                    break;
-                }
-                case 3:
-                {
-                    DataTemp[23] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow3;
-                    DataTemp[24] = MC_UpcInfo.stSensorInfo.uwTorSensorOffsetNow3 >> 8;
-                    break;
-                }
-            }
-            SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xAE1A, DataTemp);
-            #endif
-            break;
-        }
+            MC_UpcInfo.stBikeInfo.uwLightConfig = 0x0000;
+            MC_UpcInfo.stBikeInfo.uwLightConfig |= ((UWORD)(Data[5] << 12) & 0xF000); //Bit15~Bit12:尾灯模式
+            MC_UpcInfo.stBikeInfo.uwLightConfig |= (UWORD)(Data[6] & 0x00FF); //Bit7~Bit0:前灯电压
+            MC_UpcInfo.stBikeInfo.uwLightConfig |= ((UWORD)(Data[7] << 8) & 0x0F00); //Bit11~Bit8:尾灯电压
+            MC_UpcInfo.stBikeInfo2.uwRearLightDuty = (UWORD)(Data[10] + (Data[11] << 8));
+            MC_UpcInfo.stBikeInfo2.uwRearLightCycle = (UWORD)(Data[12] + (Data[13] << 8));
 
-        case 0x3301: //小牙盘原三力矩读校正系数
-        {
-            #ifdef TORSENSOR3NUM
-            UBYTE DataTemp[2] = {0, };
-            DataTemp[0] = Data[0];
-            DataTemp[1] = MC_UpcInfo.stSensorInfo.uwBikeTor4StepADC * 100 / 375; //AD * 100 / 400
-            SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xAF02, DataTemp);
-            #endif
-            break;
-        }
+            MC_UpcInfo.stBikeInfo.uwSaveFlg = TRUE;
+            MC_UpcInfo.stBikeInfo2.uwSaveFlg = TRUE;
 
-        case 0x3402: //小牙盘原三力矩写校正系数
-        {
-            #ifdef TORSENSOR3NUM
-            MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC = 65 * Data[1] / 100;
-            MC_UpcInfo.stSensorInfo.uwBikeTor2StepADC = 175 * Data[1] / 100;
-            MC_UpcInfo.stSensorInfo.uwBikeTor3StepADC = 275 * Data[1] / 100;
-            MC_UpcInfo.stSensorInfo.uwBikeTor4StepADC = 375 * Data[1] / 100;
             cp_stFlg.ParaSaveEEFlg = TRUE;
             cp_stFlg.ParaUpdateFlg = TRUE;
-            cp_stFlg.ParaSensorInfoUpdateFlg = TRUE;
-            cp_stFlg.ParaAssistUpdateFinishFlg = TRUE;
+            cp_stFlg.ParaBikeInfoUpdateFlg = TRUE;
+            cp_stFlg.ParaBikeInfo2UpdateFlg = TRUE;            
             SendData(ptUartTx, ID_MC_BC, MODE_REPORT, 0xA903, (UBYTE *)"ACK");
-            #endif
-            break;
-        }
-
-        case 0x3500: //小牙盘原三力矩查询启动值
-        {
-            #ifdef TORSENSOR3NUM
-            UBYTE DataTemp[2]; //启动值,取13Nm采集值
-            DataTemp[0] = MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC;
-            DataTemp[1] = MC_UpcInfo.stSensorInfo.uwBikeTor1StepADC >> 8;
-            SendData(ptUartTx, ID_MC_TO_CDL, MODE_REPORT, 0xB002, DataTemp);
-            #endif
             break;
         }
 

+ 1 - 1
4.BasicHardwSoftwLayer/2.BasicSoftwLayer/Include/user.h

@@ -48,7 +48,7 @@ Update Time
 /*======================================================================*
     三力距标志
 *=======================================================================*/
-//#define TORSENSOR3NUM  //三力矩标识
+#define TORSENSOR3NUM  //三力矩标识
 
 /*======================================================================*
    Motor Number Selection