소스 검색

【测试版本】
1.将算法文档和任务文档分开
2.加热强制控制和继电器强制控制增加
3.增加重启原因函数
4.Uart收不到消息优化
5.GPS没有进行释放导致重启问题修复

CHENJIE-PC\QiXiang_CHENJIE 3 년 전
부모
커밋
ac3cf7b829
99개의 변경된 파일166개의 추가작업 그리고 135개의 파일을 삭제
  1. 43 44
      ARMCC/Makefile
  2. 2 3
      inc/AppConfig.h
  3. 1 1
      inc/AppFunc.h
  4. 2 2
      inc/AppSignal.h
  5. 1 8
      inc/AppTaskTcp.h
  6. 0 0
      inc/EmbeddedCoder_inc/BCU1.h
  7. 0 0
      inc/EmbeddedCoder_inc/BCUCal.h
  8. 0 0
      inc/EmbeddedCoder_inc/BCUDisp.h
  9. 0 0
      inc/EmbeddedCoder_inc/BCU_private.h
  10. 0 0
      inc/EmbeddedCoder_inc/BCU_types.h
  11. 0 0
      inc/EmbeddedCoder_inc/BINARYSEARCH_U16.h
  12. 0 0
      inc/EmbeddedCoder_inc/BLC.h
  13. 0 0
      inc/EmbeddedCoder_inc/BLC_private.h
  14. 0 0
      inc/EmbeddedCoder_inc/BLC_types.h
  15. 0 0
      inc/EmbeddedCoder_inc/INTERPOLATE_U16_U16.h
  16. 0 0
      inc/EmbeddedCoder_inc/LookUp_U16_U16.h
  17. 0 0
      inc/EmbeddedCoder_inc/SFM.h
  18. 0 0
      inc/EmbeddedCoder_inc/SFM_private.h
  19. 0 0
      inc/EmbeddedCoder_inc/SFM_types.h
  20. 0 0
      inc/EmbeddedCoder_inc/SOC.h
  21. 0 0
      inc/EmbeddedCoder_inc/SOC_private.h
  22. 0 0
      inc/EmbeddedCoder_inc/SOC_types.h
  23. 0 0
      inc/EmbeddedCoder_inc/SOH.h
  24. 0 0
      inc/EmbeddedCoder_inc/SOH_private.h
  25. 0 0
      inc/EmbeddedCoder_inc/SOH_types.h
  26. 0 0
      inc/EmbeddedCoder_inc/SPM.h
  27. 0 0
      inc/EmbeddedCoder_inc/SPM_private.h
  28. 0 0
      inc/EmbeddedCoder_inc/SPM_types.h
  29. 0 0
      inc/EmbeddedCoder_inc/div_nde_s32_floor.h
  30. 0 0
      inc/EmbeddedCoder_inc/div_nzp_repeat_u32.h
  31. 0 0
      inc/EmbeddedCoder_inc/div_nzp_repeat_u32_ceiling.h
  32. 0 0
      inc/EmbeddedCoder_inc/div_repeat_s16s32_floor.h
  33. 0 0
      inc/EmbeddedCoder_inc/div_repeat_u32.h
  34. 0 0
      inc/EmbeddedCoder_inc/div_su32.h
  35. 0 0
      inc/EmbeddedCoder_inc/div_uus32_sat.h
  36. 0 0
      inc/EmbeddedCoder_inc/look1_binlxpw.h
  37. 0 0
      inc/EmbeddedCoder_inc/look1_is16lu16n16tu16_binlcase.h
  38. 0 0
      inc/EmbeddedCoder_inc/look1_iu16lu16n16tu16_binlcase.h
  39. 0 0
      inc/EmbeddedCoder_inc/mul_s32_hiSR.h
  40. 0 0
      inc/EmbeddedCoder_inc/mul_s32_loSR_sat.h
  41. 0 0
      inc/EmbeddedCoder_inc/mul_s32_sat.h
  42. 0 0
      inc/EmbeddedCoder_inc/mul_ssu32_sat.h
  43. 0 0
      inc/EmbeddedCoder_inc/mul_u32_hiSR.h
  44. 0 0
      inc/EmbeddedCoder_inc/mul_u32_hiSR_near.h
  45. 0 0
      inc/EmbeddedCoder_inc/mul_us32_sat.h
  46. 0 0
      inc/EmbeddedCoder_inc/mul_wide_s32.h
  47. 0 0
      inc/EmbeddedCoder_inc/mul_wide_su32.h
  48. 0 0
      inc/EmbeddedCoder_inc/mul_wide_u32.h
  49. 0 0
      inc/EmbeddedCoder_inc/rtGetInf.h
  50. 0 0
      inc/EmbeddedCoder_inc/rtGetNaN.h
  51. 0 0
      inc/EmbeddedCoder_inc/rt_nonfinite.h
  52. 0 0
      inc/EmbeddedCoder_inc/rt_powd_snf.h
  53. 0 0
      inc/EmbeddedCoder_inc/rtwtypes.h
  54. 0 0
      inc/EmbeddedCoder_inc/zero_crossing_types.h
  55. 31 14
      src/AppFunc.c
  56. 2 2
      src/AppSignal.c
  57. 25 0
      src/AppTaskCan.c
  58. 39 41
      src/AppTaskGps.c
  59. 10 7
      src/AppTaskMain.c
  60. 5 9
      src/AppTaskTcp.c
  61. 4 3
      src/AppTaskUart.c
  62. 0 0
      src/EmbeddedCoder_src/BCU1.c
  63. 0 0
      src/EmbeddedCoder_src/BCUCal.c
  64. 0 0
      src/EmbeddedCoder_src/BCUDisp.c
  65. 0 0
      src/EmbeddedCoder_src/BINARYSEARCH_U16.c
  66. 0 0
      src/EmbeddedCoder_src/BLC.c
  67. 0 0
      src/EmbeddedCoder_src/INTERPOLATE_U16_U16.c
  68. 0 0
      src/EmbeddedCoder_src/LookUp_U16_U16.c
  69. 0 0
      src/EmbeddedCoder_src/SFM.c
  70. 0 0
      src/EmbeddedCoder_src/SFM1.c
  71. 0 0
      src/EmbeddedCoder_src/SOC.c
  72. 0 0
      src/EmbeddedCoder_src/SOH.c
  73. 0 0
      src/EmbeddedCoder_src/SOH1.c
  74. 0 0
      src/EmbeddedCoder_src/SPM.c
  75. 0 0
      src/EmbeddedCoder_src/div_nde_s32_floor.c
  76. 0 0
      src/EmbeddedCoder_src/div_nzp_repeat_u32.c
  77. 0 0
      src/EmbeddedCoder_src/div_nzp_repeat_u32_ceiling.c
  78. 0 0
      src/EmbeddedCoder_src/div_repeat_s16s32_floor.c
  79. 0 0
      src/EmbeddedCoder_src/div_repeat_u32.c
  80. 0 0
      src/EmbeddedCoder_src/div_su32.c
  81. 0 0
      src/EmbeddedCoder_src/div_uus32_sat.c
  82. 0 0
      src/EmbeddedCoder_src/look1_binlxpw.c
  83. 0 0
      src/EmbeddedCoder_src/look1_is16lu16n16tu16_binlcase.c
  84. 0 0
      src/EmbeddedCoder_src/look1_iu16lu16n16tu16_binlcase.c
  85. 0 0
      src/EmbeddedCoder_src/mul_s32_hiSR.c
  86. 0 0
      src/EmbeddedCoder_src/mul_s32_loSR_sat.c
  87. 0 0
      src/EmbeddedCoder_src/mul_s32_sat.c
  88. 0 0
      src/EmbeddedCoder_src/mul_ssu32_sat.c
  89. 0 0
      src/EmbeddedCoder_src/mul_u32_hiSR.c
  90. 0 0
      src/EmbeddedCoder_src/mul_u32_hiSR_near.c
  91. 0 0
      src/EmbeddedCoder_src/mul_us32_sat.c
  92. 0 0
      src/EmbeddedCoder_src/mul_wide_s32.c
  93. 0 0
      src/EmbeddedCoder_src/mul_wide_su32.c
  94. 0 0
      src/EmbeddedCoder_src/mul_wide_u32.c
  95. 0 0
      src/EmbeddedCoder_src/rtGetInf.c
  96. 0 0
      src/EmbeddedCoder_src/rtGetNaN.c
  97. 0 0
      src/EmbeddedCoder_src/rt_nonfinite.c
  98. 0 0
      src/EmbeddedCoder_src/rt_powd_snf.c
  99. 1 1
      src/bsp_custom.c

+ 43 - 44
ARMCC/Makefile

@@ -12,51 +12,50 @@ THIRDPARTY_TINYDTLS_ENABLE  = y
 THIRDPARTY_MBEDTLS_ENABLE   = y
 IQMATH_ENABLE = y
 CFLAGS_INC        +=  -I ../inc
-
-
+CFLAGS_INC        +=  -I ../inc/EmbeddedCoder_inc
 obj-y             += PLAT/project/$(TARGET)/apps/qx_app/src/app.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/bsp_custom.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/hal_module_adapter.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/sensor.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppSignal.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppFunc.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskMain.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskTcp.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskControl.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskUart.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskCan.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskGps.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/BCU.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/SFM.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/SPM.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/SOH.o \
-PLAT/project/$(TARGET)/apps/qx_app/src/SOC.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/BLC.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_nde_s32_floor.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/look1_is16lu16n16tu16_binlcase.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/look1_iu16lu16n16tu16_binlcase.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/LookUp_U16_U16.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_s32_loSR_sat.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_s32_sat.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_ssu32_sat.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_us32_sat.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_wide_s32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_wide_u32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_wide_su32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/look1_binlxpw.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/INTERPOLATE_U16_U16.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_u32_hiSR.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_repeat_s16s32_floor.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/BINARYSEARCH_U16.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_nzp_repeat_u32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_nzp_repeat_u32_ceiling.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/BCUCal.o \
-                PLAT/project/$(TARGET)/apps/qx_app/src/BCUDisp.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_su32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_s32_hiSR.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_uus32_sat.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/div_repeat_u32.o \
-	PLAT/project/$(TARGET)/apps/qx_app/src/mul_u32_hiSR_near.o
+						PLAT/project/$(TARGET)/apps/qx_app/src/bsp_custom.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/hal_module_adapter.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/sensor.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppSignal.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppFunc.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskMain.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskTcp.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskControl.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskUart.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskCan.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/AppTaskGps.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/BCU.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/SFM.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/SPM.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/SOH.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/SOC.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/BLC.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_nde_s32_floor.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/look1_is16lu16n16tu16_binlcase.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/look1_iu16lu16n16tu16_binlcase.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/LookUp_U16_U16.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_s32_loSR_sat.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_s32_sat.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_ssu32_sat.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_us32_sat.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_wide_s32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_wide_u32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_wide_su32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/look1_binlxpw.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/INTERPOLATE_U16_U16.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_u32_hiSR.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_repeat_s16s32_floor.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/BINARYSEARCH_U16.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_nzp_repeat_u32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_nzp_repeat_u32_ceiling.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/BCUCal.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/BCUDisp.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_su32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_s32_hiSR.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_uus32_sat.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/div_repeat_u32.o \
+						PLAT/project/$(TARGET)/apps/qx_app/src/EmbeddedCoder_src/mul_u32_hiSR_near.o
 include $(TOP)/PLAT/tools/scripts/Makefile.rules 
 #enable wdt
 CFLAGS += -DWDT_FEATURE_ENABLE=1

+ 2 - 3
inc/AppConfig.h

@@ -11,9 +11,9 @@
 #define BMS_MANUFACTURE             (2)                 //BMS制造商表示1-超力源,2-美顺
 #define BMS_INFO                    (1)                 //1-1表示超力源4830,1-2表示超力源6060,2-1表示美顺6455
 #define DATA_MODULE_TYPE            (1)                 //1表示NB模块,2表示4G cat1
-#define EOLSTATE                    (0)                 //1表示下线检测跳过,使用默认值,0表示使用下线检测
+#define EOLSTATE                    (1)                 //1表示下线检测跳过,使用默认值,0表示使用下线检测
 #define DEFAULT_SN                  "RLTEST00000000002" //默认上传的SN编码
-#define	APPSWVERSION		        0x03000008          //数据模块软件版本号
+#define	APPSWVERSION		        0x03000009          //数据模块软件版本号
 
 #define TCP_ADD                     "iotp.fast-fun.cn"  //数据上传的地址
 #define TCP_PORT					8712                //数据上传的端口
@@ -139,6 +139,5 @@ typedef struct _GPSInfo
 	UINT8	latitude[4];
 	UINT8	longitude[4];
 	UINT8   AccMileage[4];
-	//若此处新增gps信息,需要同步修改tcp线程的定义
 }GPSInfo;
 #endif

+ 1 - 1
inc/AppFunc.h

@@ -33,7 +33,7 @@ static UINT8 BmsErrorDecode(UINT32 battWarningState);
 UINT16 GetErrorNum(UINT16 *ErrorArray,UINT8 Errorlen);
 UINT8 PutErrorNum(UINT16 *ErrorArray,UINT8 Errorlen,UINT16 ErrorNum);
 UINT8 LookUpRTtable(UINT32 R_value);
-BOOL BattHeaterSwitch(UINT8* heaterSwitch,UINT8 DeltaTempRange,UINT8 OpenHeaterTemp,UINT8 CloseHeaterTemp);
+BOOL BattHeaterSwitch(UINT8* heaterSwitch,UINT8 HeatForceControl);
 void SaveAppData(void);
 void LoadAppData(void);
 void SaveAppConfig(void);

+ 2 - 2
inc/AppSignal.h

@@ -64,9 +64,9 @@ extern UINT8	UDSSubServiceActionCode[2];  // uds 子服务状态
 extern UINT8    GpsFlag;
 extern UINT8    BuzzerControl;
 extern UINT8    BattWorkStateDelay;
-
+extern UINT8   HeatForceControl;  
 extern UINT8   PadInterrupt ;
-
+extern UINT8   chargerConnectState;
 //declear the UINT16 vars
 extern UINT16	battCellU[28];
 extern UINT16	minCellVol;

+ 1 - 8
inc/AppTaskTcp.h

@@ -93,14 +93,7 @@ typedef struct _GPSInfoType
 	UINT8	sendTimeUTC[6];
 	UINT8	msgMark;
 	UINT8	msgCollectionTimeUTC[6];
-	UINT8	locateMark;
-	UINT8	satelliteNum;
-	UINT8	direction[2];
-	UINT8	speed[2];
-	UINT8	altitude[2];
-	UINT8	latitude[4];
-	UINT8	longitude[4];
-	UINT8   AccMileage[4];
+	GPSInfo GpsInfoData;
 	UINT8	Tac[2];
 	UINT8	CellID[4];
 	

+ 0 - 0
inc/BCU1.h → inc/EmbeddedCoder_inc/BCU1.h


+ 0 - 0
inc/BCUCal.h → inc/EmbeddedCoder_inc/BCUCal.h


+ 0 - 0
inc/BCUDisp.h → inc/EmbeddedCoder_inc/BCUDisp.h


+ 0 - 0
inc/BCU_private.h → inc/EmbeddedCoder_inc/BCU_private.h


+ 0 - 0
inc/BCU_types.h → inc/EmbeddedCoder_inc/BCU_types.h


+ 0 - 0
inc/BINARYSEARCH_U16.h → inc/EmbeddedCoder_inc/BINARYSEARCH_U16.h


+ 0 - 0
inc/BLC.h → inc/EmbeddedCoder_inc/BLC.h


+ 0 - 0
inc/BLC_private.h → inc/EmbeddedCoder_inc/BLC_private.h


+ 0 - 0
inc/BLC_types.h → inc/EmbeddedCoder_inc/BLC_types.h


+ 0 - 0
inc/INTERPOLATE_U16_U16.h → inc/EmbeddedCoder_inc/INTERPOLATE_U16_U16.h


+ 0 - 0
inc/LookUp_U16_U16.h → inc/EmbeddedCoder_inc/LookUp_U16_U16.h


+ 0 - 0
inc/SFM.h → inc/EmbeddedCoder_inc/SFM.h


+ 0 - 0
inc/SFM_private.h → inc/EmbeddedCoder_inc/SFM_private.h


+ 0 - 0
inc/SFM_types.h → inc/EmbeddedCoder_inc/SFM_types.h


+ 0 - 0
inc/SOC.h → inc/EmbeddedCoder_inc/SOC.h


+ 0 - 0
inc/SOC_private.h → inc/EmbeddedCoder_inc/SOC_private.h


+ 0 - 0
inc/SOC_types.h → inc/EmbeddedCoder_inc/SOC_types.h


+ 0 - 0
inc/SOH.h → inc/EmbeddedCoder_inc/SOH.h


+ 0 - 0
inc/SOH_private.h → inc/EmbeddedCoder_inc/SOH_private.h


+ 0 - 0
inc/SOH_types.h → inc/EmbeddedCoder_inc/SOH_types.h


+ 0 - 0
inc/SPM.h → inc/EmbeddedCoder_inc/SPM.h


+ 0 - 0
inc/SPM_private.h → inc/EmbeddedCoder_inc/SPM_private.h


+ 0 - 0
inc/SPM_types.h → inc/EmbeddedCoder_inc/SPM_types.h


+ 0 - 0
inc/div_nde_s32_floor.h → inc/EmbeddedCoder_inc/div_nde_s32_floor.h


+ 0 - 0
inc/div_nzp_repeat_u32.h → inc/EmbeddedCoder_inc/div_nzp_repeat_u32.h


+ 0 - 0
inc/div_nzp_repeat_u32_ceiling.h → inc/EmbeddedCoder_inc/div_nzp_repeat_u32_ceiling.h


+ 0 - 0
inc/div_repeat_s16s32_floor.h → inc/EmbeddedCoder_inc/div_repeat_s16s32_floor.h


+ 0 - 0
inc/div_repeat_u32.h → inc/EmbeddedCoder_inc/div_repeat_u32.h


+ 0 - 0
inc/div_su32.h → inc/EmbeddedCoder_inc/div_su32.h


+ 0 - 0
inc/div_uus32_sat.h → inc/EmbeddedCoder_inc/div_uus32_sat.h


+ 0 - 0
inc/look1_binlxpw.h → inc/EmbeddedCoder_inc/look1_binlxpw.h


+ 0 - 0
inc/look1_is16lu16n16tu16_binlcase.h → inc/EmbeddedCoder_inc/look1_is16lu16n16tu16_binlcase.h


+ 0 - 0
inc/look1_iu16lu16n16tu16_binlcase.h → inc/EmbeddedCoder_inc/look1_iu16lu16n16tu16_binlcase.h


+ 0 - 0
inc/mul_s32_hiSR.h → inc/EmbeddedCoder_inc/mul_s32_hiSR.h


+ 0 - 0
inc/mul_s32_loSR_sat.h → inc/EmbeddedCoder_inc/mul_s32_loSR_sat.h


+ 0 - 0
inc/mul_s32_sat.h → inc/EmbeddedCoder_inc/mul_s32_sat.h


+ 0 - 0
inc/mul_ssu32_sat.h → inc/EmbeddedCoder_inc/mul_ssu32_sat.h


+ 0 - 0
inc/mul_u32_hiSR.h → inc/EmbeddedCoder_inc/mul_u32_hiSR.h


+ 0 - 0
inc/mul_u32_hiSR_near.h → inc/EmbeddedCoder_inc/mul_u32_hiSR_near.h


+ 0 - 0
inc/mul_us32_sat.h → inc/EmbeddedCoder_inc/mul_us32_sat.h


+ 0 - 0
inc/mul_wide_s32.h → inc/EmbeddedCoder_inc/mul_wide_s32.h


+ 0 - 0
inc/mul_wide_su32.h → inc/EmbeddedCoder_inc/mul_wide_su32.h


+ 0 - 0
inc/mul_wide_u32.h → inc/EmbeddedCoder_inc/mul_wide_u32.h


+ 0 - 0
inc/rtGetInf.h → inc/EmbeddedCoder_inc/rtGetInf.h


+ 0 - 0
inc/rtGetNaN.h → inc/EmbeddedCoder_inc/rtGetNaN.h


+ 0 - 0
inc/rt_nonfinite.h → inc/EmbeddedCoder_inc/rt_nonfinite.h


+ 0 - 0
inc/rt_powd_snf.h → inc/EmbeddedCoder_inc/rt_powd_snf.h


+ 0 - 0
inc/rtwtypes.h → inc/EmbeddedCoder_inc/rtwtypes.h


+ 0 - 0
inc/zero_crossing_types.h → inc/EmbeddedCoder_inc/zero_crossing_types.h


+ 31 - 14
src/AppFunc.c

@@ -12,7 +12,7 @@
 void BattWorkDelayFunc(UINT8 battWorkCurrentState)
 {
 	static UINT16 workDelayCounter = 0;
-	printf("[%d]%x-%x-%d\n",__LINE__,battWorkState,BattWorkStateDelay,workDelayCounter);
+
 	if(battWorkCurrentState==BATT_IDLE_SYM&&BattWorkStateDelay==BATT_DISCHARGE_SYM)//从放电转静置 10s延时
 	{
 		workDelayCounter++;
@@ -152,30 +152,50 @@ UINT8 bcc_chk(UINT8* data, UINT16 length)
  * 输出:加热状态
  * 处理:根据标定参数值以及当前状态,判断是否进行加热,加热策略的更改在此函数
 ***********************************************************************************************************************/
-BOOL BattHeaterSwitch(UINT8* heaterSwitch,UINT8 DeltaTempRange,UINT8 OpenHeaterTemp,UINT8 CloseHeaterTemp)
+BOOL BattHeaterSwitch(UINT8* heaterSwitch,UINT8 HeatForceControl)
 {
 	BOOL isNeedtoSwitch = FALSE;
 	
+	UINT8 i =0; 
 	UINT8 currentSwitchState = 0;
-	//get the current switch state and the cell temp
-	currentSwitchState = battHeatEnableState&0x01;
 
-	if(currentSwitchState==0)  //当前状态为关闭,判断是否应该开启
+	//get the current switch state and the cell temp
+	currentSwitchState = battHeatEnableState & 0x01;
+	if(HeatForceControl==1)//强制开启
 	{
-		if(minCellTemp<OpenHeaterTemp+40 && minCellTemp>=-29+40 && maxCellTemp<OpenHeaterTemp+DeltaTempRange+40)//温度偏移为40 
+		if(currentSwitchState==0) 
 		{
 			*heaterSwitch = 1;
 			isNeedtoSwitch = true;
 		}
 	}
-	else        //当前状态为开启,判断是否应该关闭
+	else if(HeatForceControl==2)//强制关闭
 	{
-		if(minCellTemp>=CloseHeaterTemp+40 || maxCellTemp>=CloseHeaterTemp+DeltaTempRange+40)
+		if(currentSwitchState==1) 
 		{
 			*heaterSwitch = 0;
 			isNeedtoSwitch = true;
 		}
 	}
+	else//不强制控制
+	{
+		if(currentSwitchState==0)  //当前状态为关闭,判断是否应该开启
+		{
+			if((chargerConnectState == 1 && minCellTemp<5+40 && minCellTemp>=-29+40 && maxCellTemp<25+40)||(chargerConnectState==0 && minCellTemp<5+40 && minCellTemp>=-29+40 && battSOC>=10 && (((battProtectState>> 21)&0x01) == 0)))//温度偏移为40 
+			{
+				*heaterSwitch = 1;
+				isNeedtoSwitch = true;
+			}
+		}
+		else        //当前状态为开启,判断是否应该关闭
+		{
+			if((minCellTemp>=10+40 || maxCellTemp>=30+40)||(chargerConnectState == 0 && minCellTemp<5+40 && minCellTemp>=-29+40 && battSOC<5))
+			{
+				*heaterSwitch = 0;
+				isNeedtoSwitch= true;
+			}
+		}
+	}
 	return isNeedtoSwitch;
 }
 /***********************************************************************************************************************
@@ -533,7 +553,7 @@ BOOL uartBattInfoDecode(UINT8* dataPtr)
 	avrgCellVol = Battsumvoltage/BATT_CELL_VOL_NUM;
     MOSTemp = dataPtr[(0x06+BATT_CELL_VOL_NUM+BATT_TEMP_NUM)*2+1];
    	packTemp = dataPtr[(0x06+BATT_CELL_VOL_NUM+BATT_TEMP_NUM+1)*2+1];
-    
+    chargerConnectState = (dataPtr[(0x03+BATT_CELL_VOL_NUM)*2+1]>>2)&0x01;//充电器连接状态,0表示未连接,1表示已连接
     Batt_current = (dataPtr[(0x02+BATT_CELL_VOL_NUM)*2]<<8)|(dataPtr[(0x02+BATT_CELL_VOL_NUM)*2+1]);
     //原始数据:充电为负,放电为正
 	if(battWorkState == 0x02) //充电过程
@@ -1373,6 +1393,7 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 else
                 {
                     Fota_Answer[3] = 0x01;
+					BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,(FLASH_BMS_FOTA_END_ADDR - FLASH_BMS_FOTA_START_ADDR)); //512k-32k = 480k -> 0x75300  0x78000
                 }
                 memcpy(&Fota_Answer[4],(DataPtr+4),BATT_SN_LEN);
                 Fota_Answer[21] = TCP_ENCPT_DISABLE;
@@ -1381,10 +1402,6 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
                 memcpy(&Fota_Answer[24],(DataPtr+24),18);
                 Fota_Answer[42] =  bcc_chk_fota(Fota_Answer,42);
                 tcpipConnectionSend(connectId,Fota_Answer,43,0,0,0);
-                if(Fota_Answer[3] == 0x01)
-                {
-                    BSP_QSPI_Erase_Safe(Fota_S.Fota_Flash_Addres,(FLASH_BMS_FOTA_END_ADDR - FLASH_BMS_FOTA_START_ADDR)); //512k-32k = 480k -> 0x75300  0x78000
-                }
                 break;
             }
             case 0x02:
@@ -1408,7 +1425,7 @@ void Fota_Func(UINT8 *DataPtr,INT32 connectId)
 						Fota_Recv_Data_Len_4 = Fota_S.Fota_Recv_Data_Len;
 					}
                     BSP_QSPI_Write_Safe(Fota_S.Fota_Recv_Data,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_Recv_Data_Len_4);
-                    
+                    memset(Data_Read_Buffer,0x00,Fota_S.Fota_Recv_Data_Len);
                     BSP_QSPI_Read_Safe(Data_Read_Buffer,Fota_S.Fota_Flash_Addres+Fota_S.Fota_Current_Addres,Fota_S.Fota_Recv_Data_Len);
                     Data_Read_Crc = Fota_crc_chk(Data_Read_Buffer,Fota_S.Fota_Recv_Data_Len);
                     #ifdef USING_PRINTF1

+ 2 - 2
src/AppSignal.c

@@ -61,9 +61,9 @@ UINT8	UDSSubServiceActionCode[2]  = {0};  // uds 子服务状态
 UINT8   GpsFlag = 0;                  //GPS 数据有效标志位
 UINT8   BuzzerControl = 0;          //蜂鸣器控制状态
 UINT8   BattWorkStateDelay = 0;     //电池工作状态(延时处理后的)
-
+UINT8   HeatForceControl = 0;       //加热强制控制使能
 UINT8   PadInterrupt = 0x00;           //每个bit代表一个中断标志
-
+UINT8   chargerConnectState = 0x00;
 /**declear the uint16 vars**/
 UINT16	battCellU[28] = {0xFFFF};    //电池包单体电压
 UINT16	minCellVol = 0xFFFF;    //最小单体电压

+ 25 - 0
src/AppTaskCan.c

@@ -112,6 +112,31 @@ static void CanTask()
 								msgFlag = 0;
 							}
 						}
+						else if(CanRxMsg[i].Id == 0x7A2)
+						{
+							if(CanRxMsg[i].Data[0] == 0x01)
+							{
+								AppDataInfo.appDataModify = TRUE;	
+								AppDataInfo.RelayControl = TRUE;
+							}
+							else
+							{
+								AppDataInfo.appDataModify = TRUE;	
+								AppDataInfo.RelayControl = FALSE;
+							}
+							if(CanRxMsg[i].Data[1] == 0x01)
+							{
+								HeatForceControl = 0x01;
+							}
+							else if(CanRxMsg[i].Data[1] == 0x02)
+							{
+								HeatForceControl = 0x02;
+							}
+							else
+							{
+								HeatForceControl = 0x00;
+							}
+						}
 					}	
 					if(udsFlag==1)
 					{	

+ 39 - 41
src/AppTaskGps.c

@@ -24,13 +24,11 @@ static void GpsTask(void* arg)
 	/*三轴加速度初始化*/
 	GsensorI2CHandler(GsensorI2CCallback);
     GsensorInit();
-
 	if(GpsRecvHandle == NULL)
 	{
-		GpsRecvHandle = osMessageQueueNew(1,sizeof(GPSInfo*), NULL);
+		GpsRecvHandle = osMessageQueueNew(1,sizeof(GPSInfo), NULL);
 	}
 	gpsReqMsg msg;
-	GPSInfo *GpsInfoData; 
 	char *p=NULL;
 	CHAR *p2=NULL;
 	const char *delim = "\n";
@@ -41,6 +39,7 @@ static void GpsTask(void* arg)
     UINT16 direction;
 	UINT16 GpsNoDataCounter = 0;
 	UINT8  index=0;
+	GPSInfo  GpsInfoData;
 	PROC_GPS_STATE_SWITCH(PROCESS_GPS_STATE_INIT);
     while(1)
     {
@@ -75,6 +74,7 @@ static void GpsTask(void* arg)
 			{
 				if(GpsNoDataCounter>=60*10)
 				{
+					memset((UINT8 *)&GpsInfoData,0x00,sizeof(GPSInfo));
 					GpsNoDataCounter = 0;
 					osDelay(100);
 					posGGAServiceStart(norGpsHandle);
@@ -85,16 +85,15 @@ static void GpsTask(void* arg)
 				{
 					if (msg.dataPtr)
             		{
-						//char temp[] = "$GNRMC,082626.000,A,2939.91801,N,10637.09500,E,0.543,30.254,261120,,,A,V*17";
-						GpsInfoData = malloc(sizeof(GPSInfo));
-						memset(GpsInfoData,0x00,sizeof(GPSInfo));
+						// char temp[] = "$GNRMC,082626.000,A,2939.91801,N,10637.09500,E,0.543,30.254,261120,,,A,V*17";
+						memset((UINT8 *)&GpsInfoData,0x00,sizeof(GPSInfo));
 						p = strtok(msg.dataPtr,delim);//将信息进行分割
 						p2 = strtok(NULL,delim);
 						#ifdef USING_PRINTF1
 							printf("\nP msgptr data:%s\r\n",p);
 						#endif
 						p = strtok(p,",");//只取第1行的信息RMC
-						//p = strtok(temp,",");//模拟测试
+						// p = strtok(temp,",");//模拟测试
 						if (strcmp(p,"$GNRMC")==0)
 						{
 							index = 0;			
@@ -107,34 +106,34 @@ static void GpsTask(void* arg)
 							if (index>5&&strcmp(databuffer[2],"A")==0)
 							{
 								GpsNoDataCounter = 0;
-								GpsInfoData->locateMark = 0x01;//有效,东经,北纬写定
+								GpsInfoData.locateMark = 0x01;//有效,东经,北纬写定
 								GpsFlag = 3;
 								strdel(databuffer[3],'.');
 								strdel(databuffer[5],'.');
 								strdel(databuffer[7],'.');
 								speedtemp = atol(databuffer[7])*1852/1e5;//节换算单位,1节=1.852km每小时
-								GpsInfoData->speed[0] = (speedtemp>>8)&0xFF;
-								GpsInfoData->speed[1]= speedtemp&0xFF; 
+								GpsInfoData.speed[0] = (speedtemp>>8)&0xFF;
+								GpsInfoData.speed[1]= speedtemp&0xFF; 
 								latitude =location_handle(databuffer[3]);
-								GpsInfoData->latitude[0] = latitude>> 24;
-								GpsInfoData->latitude[1] = latitude>> 16;
-								GpsInfoData->latitude[2] = latitude>> 8;
-								GpsInfoData->latitude[3] = latitude;
+								GpsInfoData.latitude[0] = latitude>> 24;
+								GpsInfoData.latitude[1] = latitude>> 16;
+								GpsInfoData.latitude[2] = latitude>> 8;
+								GpsInfoData.latitude[3] = latitude;
 								longitude = location_handle(databuffer[5]);
-								GpsInfoData->longitude[0] = longitude>>24;
-								GpsInfoData->longitude[1] = longitude>>16;
-								GpsInfoData->longitude[2] = longitude>>8;
-								GpsInfoData->longitude[3] = longitude;
+								GpsInfoData.longitude[0] = longitude>>24;
+								GpsInfoData.longitude[1] = longitude>>16;
+								GpsInfoData.longitude[2] = longitude>>8;
+								GpsInfoData.longitude[3] = longitude;
 								if(speedtemp>=50)//大于5km/h才输出方位
 								{
 									direction = atol(databuffer[8]);
-									GpsInfoData->direction[0] = direction>>8;
-									GpsInfoData->direction[1] = direction;
+									GpsInfoData.direction[0] = direction>>8;
+									GpsInfoData.direction[1] = direction;
 								}
 								else
 								{
-									GpsInfoData->direction[0] = 0xff;
-									GpsInfoData->direction[1] = 0xff;
+									GpsInfoData.direction[0] = 0xff;
+									GpsInfoData.direction[1] = 0xff;
 								}
 								if(speedtemp>=30 && speedtemp<=1500 && BattWorkStateDelay==0x01)
 								{
@@ -146,10 +145,10 @@ static void GpsTask(void* arg)
 									}
 								}
 							}
-							GpsInfoData->AccMileage[0] = AppDataInfo.AccMileage>>24;
-							GpsInfoData->AccMileage[1] = AppDataInfo.AccMileage>>16;
-							GpsInfoData->AccMileage[2] = AppDataInfo.AccMileage>>8;
-							GpsInfoData->AccMileage[3] = AppDataInfo.AccMileage;
+							GpsInfoData.AccMileage[0] = AppDataInfo.AccMileage>>24;
+							GpsInfoData.AccMileage[1] = AppDataInfo.AccMileage>>16;
+							GpsInfoData.AccMileage[2] = AppDataInfo.AccMileage>>8;
+							GpsInfoData.AccMileage[3] = AppDataInfo.AccMileage;
 						}
 						p2 = strtok(p2,",");//只取第2行的信息GGA
 						memset(databuffer,0x30,20);
@@ -164,35 +163,34 @@ static void GpsTask(void* arg)
 							}
 							if(index>9&&(strcmp(databuffer[6],"1")==0||strcmp(databuffer[6],"2")==0))
 							{
-								GpsInfoData->satelliteNum = atol(databuffer[7]);//卫星数目写入
-								GpsFlag = GpsInfoData->satelliteNum;
+								GpsInfoData.satelliteNum = atol(databuffer[7]);//卫星数目写入
+								GpsFlag = GpsInfoData.satelliteNum;
 								strdel(databuffer[9],'.');
 								UINT16 alt = 0;
 								alt = atol(databuffer[9])/10 + 1000;
-								GpsInfoData->altitude[0]  = alt>>8;//海拔
-								GpsInfoData->altitude[1]  = alt;
+								GpsInfoData.altitude[0]  = alt>>8;//海拔
+								GpsInfoData.altitude[1]  = alt;
 								strdel(databuffer[2],'.');
 								strdel(databuffer[4],'.');
 								latitude =location_handle(databuffer[2]);
-								GpsInfoData->latitude[0] = latitude>> 24;
-								GpsInfoData->latitude[1] = latitude>> 16;
-								GpsInfoData->latitude[2] = latitude>> 8;
-								GpsInfoData->latitude[3] = latitude;
+								GpsInfoData.latitude[0] = latitude>> 24;
+								GpsInfoData.latitude[1] = latitude>> 16;
+								GpsInfoData.latitude[2] = latitude>> 8;
+								GpsInfoData.latitude[3] = latitude;
 								longitude = location_handle(databuffer[4]);
-								GpsInfoData->longitude[0] = longitude>>24;
-								GpsInfoData->longitude[1] = longitude>>16;
-								GpsInfoData->longitude[2] = longitude>>8;
-								GpsInfoData->longitude[3] = longitude;
+								GpsInfoData.longitude[0] = longitude>>24;
+								GpsInfoData.longitude[1] = longitude>>16;
+								GpsInfoData.longitude[2] = longitude>>8;
+								GpsInfoData.longitude[3] = longitude;
 							}
 							else
 							{
 								GpsFlag = 0;
-								memset(GpsInfoData,0x00,sizeof(GPSInfo));
 								GpsNoDataCounter++;
 							}
 						}
 						osMessageQueueReset(GpsRecvHandle);
-						osMessageQueuePut(GpsRecvHandle,&GpsInfoData,0,1000);
+						osMessageQueuePut(GpsRecvHandle,(UINT8 *)&GpsInfoData,0,1000);
 					}
 					if(msg.dataPtr)
 						free(msg.dataPtr);
@@ -231,7 +229,7 @@ void AppTaskGpsInit(void *arg)
 	{
 		osThreadAttr_t task_attr;
 		memset(&task_attr , 0 , sizeof(task_attr));
-		task_attr.name = "GPS";
+		task_attr.name = "GPSTask";
 		task_attr.priority = osPriorityBelowNormal6;
 		task_attr.cb_mem = &gpsTask;
 		task_attr.cb_size = sizeof(StaticTask_t);

+ 10 - 7
src/AppTaskMain.c

@@ -84,9 +84,8 @@ static void MainTask(void* arg)
                 if(TimeCounter%10==0)
                 {
                     BattWorkDelayFunc(battWorkState);
-                    #ifdef USING_PRINTF1
-                        printf("[%d]-%x",__LINE__,battWorkState);
-                        printf("[%d]%x - %x - %x - %x - %x\n",__LINE__,WorkTimerEnd,BMS_Fota_update_flag,TCPWorkState,BattWorkStateDelay,PadInterrupt);
+                    #ifdef USING_PRINTF
+                        printf("[%d]-%d \n",__LINE__,TimeCounter);
                     #endif
                 }
                 if(WorkTimerEnd==TRUE)//从工作转换为监听的条件,定时器结束
@@ -132,12 +131,16 @@ static void MainTask(void* arg)
             case PROCESS_STATE_LISTEN:
             {
                 PROC_APP_STATE_SWITCH(LISTEN);
-                if(PadInterrupt!=0x00)
+                if(getbit(PadInterrupt,1)==0x01)
                 {
+                    clrbit(PadInterrupt,1);
                     osDelay(10);
-                    PadInterrupt_clrCounter++;
+                    PadInterrupt_clrCounter = PadInterrupt_clrCounter + 1;
                     Temp = PadInterrupt;
-                    PadInterrupt = 0x00;
+                }
+                else if(getbit(PadInterrupt,1)==0x00 && PadInterrupt!=0x00)
+                {
+                    PadInterrupt_clrCounter = PadInterrupt_clrCounter + 3;
                 }
                 else
                 {
@@ -154,7 +157,7 @@ static void MainTask(void* arg)
                 #ifdef USING_PRINTF1
                     printf("[%d]%x - %x - %x - %x\n",__LINE__,SleepTimerEnd,BMS_Fota_update_flag,TCPWorkState,PadInterrupt);
                 #endif
-                if((SleepTimerEnd)||(TCPWorkState==1)||(PadInterrupt_clrCounter>=2))//从监听转换为工作的条件
+                if((SleepTimerEnd)||(TCPWorkState==1)||(PadInterrupt_clrCounter>=3))//从监听转换为工作的条件
                 {
                     #ifdef USING_PRINTF
                         printf("[%d]-%x",__LINE__,battWorkState);

+ 5 - 9
src/AppTaskTcp.c

@@ -384,7 +384,7 @@ static void TcpDataInfoAssembleSend()
     }
     if(send_counter%GpsSendFreq==0 && send_counter!=0)
     {
-        GPSInfo *GpsRecvData=NULL;
+        GPSInfo GpsRecvData;
         GPSMsgtoTcpType GpsToTcpInfo;
         UINT16 tac = 0;
         UINT32 cellId = 0;
@@ -419,10 +419,10 @@ static void TcpDataInfoAssembleSend()
         GpsToTcpInfo.gpsInfo.msgCollectionTimeUTC[3] = UTC8TimeTcp.hour & 0xFF; 						    //hour
         GpsToTcpInfo.gpsInfo.msgCollectionTimeUTC[4] = UTC8TimeTcp.minute & 0xFF;						    //mins
         GpsToTcpInfo.gpsInfo.msgCollectionTimeUTC[5] = UTC8TimeTcp.second & 0xFF;
-        osStatus_t ret = osMessageQueueGet(GpsRecvHandle,&GpsRecvData,0,100);
+        osStatus_t ret = osMessageQueueGet(GpsRecvHandle,(UINT8 *)&GpsRecvData,0,100);
         if(ret == 0)
         {
-            memcpy((UINT8 *)&GpsToTcpInfo.gpsInfo.locateMark, GpsRecvData,sizeof(GPSInfo));
+            memcpy((UINT8 *)&GpsToTcpInfo.gpsInfo.GpsInfoData, (UINT8 *)&GpsRecvData,sizeof(GPSInfo));
             GpsToTcpInfo.gpsInfo.Tac[0] = tac>>8;
             GpsToTcpInfo.gpsInfo.Tac[1] = tac&0xFF;
             GpsToTcpInfo.gpsInfo.CellID[0] = cellId>>24;
@@ -430,11 +430,10 @@ static void TcpDataInfoAssembleSend()
             GpsToTcpInfo.gpsInfo.CellID[0] = cellId>>8;
             GpsToTcpInfo.gpsInfo.CellID[0] = cellId;
             GpsToTcpInfo.CRC = bcc_chk((UINT8 *)&GpsToTcpInfo, sizeof(GPSMsgtoTcpType)-1 );
-            //if(GpsToTcpInfo.gpsInfo.locateMark==0x01)
             if(1)
             {
                 len = tcpipConnectionSend(socContext.id, (UINT8 *)&GpsToTcpInfo, sizeof(GpsToTcpInfo), 0, 0, 0);
-                #ifdef USING_PRINTF1
+                #ifdef USING_PRINTF
                     for (int i = 0; i < sizeof(GpsToTcpInfo); i++)
                     {
                         printf("%02x ",*((UINT8 *)&GpsToTcpInfo+i));
@@ -452,9 +451,6 @@ static void TcpDataInfoAssembleSend()
                 }
             }
         }
-        if(GpsRecvData!=NULL)
-            free(GpsRecvData);
-        GpsRecvData=NULL;
     }
     if(send_counter==1)//版本信息上报 上报频率为每次重启后上报或者每次更新后上报或者每天上报一次均可
     {
@@ -816,12 +812,12 @@ static void TcpDataInfoRecvHandle()
                 }
             }
         }
+    }
     if(TcpRecvData!=NULL)
     {
         free(TcpRecvData);
     }
     TcpRecvData = NULL; 
-    }
 }
 //Tcp线程初始化
 void AppTaskTcpInit(void *arg)

+ 4 - 3
src/AppTaskUart.c

@@ -135,6 +135,7 @@ static void UartTask(void* arg)
 				#endif
                 if(Uart_Recv_LEN>5)
                 {
+					UartRecvFlagCounter = 0;
                     UartRecvFlag = 1;
                     UartAnswerData.len = Uart_Recv_LEN;
                     uartBattInfoDecode(UartAnswerData.data);
@@ -151,7 +152,7 @@ static void UartTask(void* arg)
 					osDelay(100);
                     UartRecvFlagCounter++;
 				}
-				if(UartRecvFlagCounter>=5)
+				if(UartRecvFlagCounter>=10)
 				{
 					if(osOK==osMutexAcquire(Error_Mutex, 100))
 					{
@@ -159,8 +160,8 @@ static void UartTask(void* arg)
 						PutErrorNum((UINT16 *)ErrorNum,sizeof(ErrorNum),ErrorNumTemp);
 					}
 					osMutexRelease(Error_Mutex);
+					uartBattInfoDecode(UartAnswerData.data);
 					UartRecvFlag = 0;
-					UartRecvFlagCounter = 0;
 					PROC_UART_STATE_SWITCH(PROCESS_UART_STATE_INTI);
 					break;
 				}
@@ -328,7 +329,7 @@ static UINT8 Uart_WriteCmd_func(UartWriteData_S UartWriteData)
 void Uart_Cmd_Control(QueueHandle_t UartWriteCmdHandle,UartWriteData_S UartWriteData,UartAnswerData_S UartAnswerData)
 {
 	UINT8 HeatSwitch = 0;
-	if(TimeCounter%10==0 && BattHeaterSwitch(&HeatSwitch,10,5,10)==TRUE)
+	if(TimeCounter%10==0 && BattHeaterSwitch(&HeatSwitch,HeatForceControl)==TRUE)
 	{
 		UartWriteData.WriteCmd = 0x02;
 		UartWriteData.Data[0] = 0x00;

+ 0 - 0
src/BCU1.c → src/EmbeddedCoder_src/BCU1.c


+ 0 - 0
src/BCUCal.c → src/EmbeddedCoder_src/BCUCal.c


+ 0 - 0
src/BCUDisp.c → src/EmbeddedCoder_src/BCUDisp.c


+ 0 - 0
src/BINARYSEARCH_U16.c → src/EmbeddedCoder_src/BINARYSEARCH_U16.c


+ 0 - 0
src/BLC.c → src/EmbeddedCoder_src/BLC.c


+ 0 - 0
src/INTERPOLATE_U16_U16.c → src/EmbeddedCoder_src/INTERPOLATE_U16_U16.c


+ 0 - 0
src/LookUp_U16_U16.c → src/EmbeddedCoder_src/LookUp_U16_U16.c


+ 0 - 0
src/SFM.c → src/EmbeddedCoder_src/SFM.c


+ 0 - 0
src/SFM1.c → src/EmbeddedCoder_src/SFM1.c


+ 0 - 0
src/SOC.c → src/EmbeddedCoder_src/SOC.c


+ 0 - 0
src/SOH.c → src/EmbeddedCoder_src/SOH.c


+ 0 - 0
src/SOH1.c → src/EmbeddedCoder_src/SOH1.c


+ 0 - 0
src/SPM.c → src/EmbeddedCoder_src/SPM.c


+ 0 - 0
src/div_nde_s32_floor.c → src/EmbeddedCoder_src/div_nde_s32_floor.c


+ 0 - 0
src/div_nzp_repeat_u32.c → src/EmbeddedCoder_src/div_nzp_repeat_u32.c


+ 0 - 0
src/div_nzp_repeat_u32_ceiling.c → src/EmbeddedCoder_src/div_nzp_repeat_u32_ceiling.c


+ 0 - 0
src/div_repeat_s16s32_floor.c → src/EmbeddedCoder_src/div_repeat_s16s32_floor.c


+ 0 - 0
src/div_repeat_u32.c → src/EmbeddedCoder_src/div_repeat_u32.c


+ 0 - 0
src/div_su32.c → src/EmbeddedCoder_src/div_su32.c


+ 0 - 0
src/div_uus32_sat.c → src/EmbeddedCoder_src/div_uus32_sat.c


+ 0 - 0
src/look1_binlxpw.c → src/EmbeddedCoder_src/look1_binlxpw.c


+ 0 - 0
src/look1_is16lu16n16tu16_binlcase.c → src/EmbeddedCoder_src/look1_is16lu16n16tu16_binlcase.c


+ 0 - 0
src/look1_iu16lu16n16tu16_binlcase.c → src/EmbeddedCoder_src/look1_iu16lu16n16tu16_binlcase.c


+ 0 - 0
src/mul_s32_hiSR.c → src/EmbeddedCoder_src/mul_s32_hiSR.c


+ 0 - 0
src/mul_s32_loSR_sat.c → src/EmbeddedCoder_src/mul_s32_loSR_sat.c


+ 0 - 0
src/mul_s32_sat.c → src/EmbeddedCoder_src/mul_s32_sat.c


+ 0 - 0
src/mul_ssu32_sat.c → src/EmbeddedCoder_src/mul_ssu32_sat.c


+ 0 - 0
src/mul_u32_hiSR.c → src/EmbeddedCoder_src/mul_u32_hiSR.c


+ 0 - 0
src/mul_u32_hiSR_near.c → src/EmbeddedCoder_src/mul_u32_hiSR_near.c


+ 0 - 0
src/mul_us32_sat.c → src/EmbeddedCoder_src/mul_us32_sat.c


+ 0 - 0
src/mul_wide_s32.c → src/EmbeddedCoder_src/mul_wide_s32.c


+ 0 - 0
src/mul_wide_su32.c → src/EmbeddedCoder_src/mul_wide_su32.c


+ 0 - 0
src/mul_wide_u32.c → src/EmbeddedCoder_src/mul_wide_u32.c


+ 0 - 0
src/rtGetInf.c → src/EmbeddedCoder_src/rtGetInf.c


+ 0 - 0
src/rtGetNaN.c → src/EmbeddedCoder_src/rtGetNaN.c


+ 0 - 0
src/rt_nonfinite.c → src/EmbeddedCoder_src/rt_nonfinite.c


+ 0 - 0
src/rt_powd_snf.c → src/EmbeddedCoder_src/rt_powd_snf.c


+ 1 - 1
src/bsp_custom.c

@@ -218,7 +218,7 @@ void BSP_CustomInit(void)
     }
 #endif
 	slpManGetPMUSettings();				
-
+    ResetReasonInit();
 	PMU_WakeupPadInit();
 	NVIC_EnableIRQ(PadWakeup0_IRQn);//can
 	NVIC_DisableIRQ(PadWakeup1_IRQn);//rx