瀏覽代碼

增加仪表和电池心跳包,轮流500ms。

Dail 1 年之前
父節點
當前提交
f322818296
共有 7 個文件被更改,包括 2602 次插入2569 次删除
  1. 3 0
      Core/Src/main.c
  2. 11 6
      MDK-ARM/QD007A_CTL_APP.uvprojx
  3. 2562 2562
      MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex
  4. 二進制
      MDK-ARM/bin/QD007A_CTL_APP.bin
  5. 1 0
      User/Inc/tasks.h
  6. 24 0
      User/Src/tasks.c
  7. 1 1
      User/Src/var.c

+ 3 - 0
Core/Src/main.c

@@ -244,6 +244,9 @@ int main(void)
 			//UART设备通信状态检测
 			MC_UartRxCheck_Process();
 			
+			//CAN设备心跳包
+			Device_Handshake_Process();			
+			
 			//速度传感器采集及计算
 			if(MC_ConfigParam1.SpeedSignal == MC_SPEED_CADENCE_CAL) //0xAA, 根据踏频估算
 			{

+ 11 - 6
MDK-ARM/QD007A_CTL_APP.uvprojx

@@ -14,6 +14,8 @@
         <TargetCommonOption>
           <Device>STM32F103RB</Device>
           <Vendor>STMicroelectronics</Vendor>
+          <PackID>Keil.STM32F1xx_DFP.2.3.0</PackID>
+          <PackURL>http://www.keil.com/pack/</PackURL>
           <Cpu>IROM(0x08000000,0x20000) IRAM(0x20000000,0x5000) CPUTYPE("Cortex-M3") CLOCK(12000000) ELITTLE</Cpu>
           <FlashUtilSpec></FlashUtilSpec>
           <StartupFile></StartupFile>
@@ -82,6 +84,8 @@
             <UserProg2Name>D:\SoftDesign\20190311_QD007A_CTL\QD007E_CTRL_APP\QD007E_CTRL_APP\MDK-ARM\crc_gen_keil.bat</UserProg2Name>
             <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
             <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+            <nStopA1X>0</nStopA1X>
+            <nStopA2X>0</nStopA2X>
           </AfterMake>
           <SelectedForBatchBuild>0</SelectedForBatchBuild>
           <SVCSIdString></SVCSIdString>
@@ -121,7 +125,7 @@
             <Oh166RecLen>16</Oh166RecLen>
           </OPTHX>
           <Simulator>
-            <UseSimulator>1</UseSimulator>
+            <UseSimulator>0</UseSimulator>
             <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
             <RunToMain>1</RunToMain>
             <RestoreBreakpoints>1</RestoreBreakpoints>
@@ -133,7 +137,7 @@
             <RestoreSysVw>1</RestoreSysVw>
           </Simulator>
           <Target>
-            <UseTarget>0</UseTarget>
+            <UseTarget>1</UseTarget>
             <LoadApplicationAtStartup>1</LoadApplicationAtStartup>
             <RunToMain>1</RunToMain>
             <RestoreBreakpoints>1</RestoreBreakpoints>
@@ -143,10 +147,9 @@
             <RestoreToolbox>1</RestoreToolbox>
             <RestoreTracepoints>1</RestoreTracepoints>
             <RestoreSysVw>1</RestoreSysVw>
-            <UsePdscDebugDescription>1</UsePdscDebugDescription>
           </Target>
           <RunDebugAfterBuild>0</RunDebugAfterBuild>
-          <TargetSelection>9</TargetSelection>
+          <TargetSelection>6</TargetSelection>
           <SimDlls>
             <CpuDll></CpuDll>
             <CpuDllArguments></CpuDllArguments>
@@ -160,7 +163,7 @@
             <PeripheralDll></PeripheralDll>
             <PeripheralDllArguments></PeripheralDllArguments>
             <InitializationFile></InitializationFile>
-            <Driver>BIN\CMSIS_AGDI.dll</Driver>
+            <Driver>Segger\JL2CM3.dll</Driver>
           </TargetDlls>
         </DebugOption>
         <Utilities>
@@ -360,9 +363,11 @@
             <uSurpInc>0</uSurpInc>
             <uC99>1</uC99>
             <useXO>0</useXO>
+            <v6Lang>0</v6Lang>
+            <v6LangP>0</v6LangP>
             <VariousControls>
               <MiscControls></MiscControls>
-              <Define>USE_HAL_DRIVER,STM32F103xB,VOLANS_48V,BARD_250K</Define>
+              <Define>USE_HAL_DRIVER,STM32F103xB,VOLANS_36V,BARD_250K</Define>
               <Undefine></Undefine>
               <IncludePath>../Core/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc;../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F1xx/Include;../Drivers/CMSIS/Include;..\User\Inc;..\SEGGER_RTT\Inc;..\SelfTestUser\Inc</IncludePath>
             </VariousControls>

File diff suppressed because it is too large
+ 2562 - 2562
MDK-ARM/QD007A_CTL_APP/QD007A_CTL_APP_CRC.hex


二進制
MDK-ARM/bin/QD007A_CTL_APP.bin


+ 1 - 0
User/Inc/tasks.h

@@ -27,4 +27,5 @@ extern void MC_TemperatureLogProcess(void);
 extern void MC_TE_SensorScan(MC_TE_SensorData_Struct_t* p_MC_TE_SensorData);
 extern void NoPBUMode_Ini( void );
 extern void BikeRatioCal_Process(uint16_t MotorSpeed, uint16_t Cadence, uint16_t BikeSpeed, Bike_RatioCal_Struct_t* p_Bike_RatioCal);
+extern void Device_Handshake_Process(void);
 #endif

+ 24 - 0
User/Src/tasks.c

@@ -1076,4 +1076,28 @@ void BikeRatioCal_Process(uint16_t MotorSpeed, uint16_t Cadence, uint16_t BikeSp
 	  p_Bike_RatioCal->RatioResult = p_Bike_RatioCal->RatioFlt;
 	#endif
 }
+
+//设备心跳
+void Device_Handshake_Process(void)
+{
+	static uint32_t PeriodCnt = 0;
+	static uint8_t i = 0;
+	if((HAL_GetTick() - PeriodCnt) >= 500)
+	{
+ 	  PeriodCnt = HAL_GetTick();
+		if(i == 0)
+		{
+		  //BMS
+		  SendData(ID_MC_TO_BMS, MODE_READ, 0x3009, (uint8_t*)"HANDSHAKE");
+			i = 1;
+		}
+		else if(i == 1)
+		{
+		  //OBC
+		  SendData(ID_MC_TO_PBU, MODE_READ, 0x5009, (uint8_t*)"HANDSHAKE");
+			i = 0;
+		}
+		
+	}			
+}
 /**************************全局函数定义结束*****************/

+ 1 - 1
User/Src/var.c

@@ -668,7 +668,7 @@ void Var_Init(void)
 	#endif
 	
 	//Èí¼þ±êʶ
-	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r0.           ", 32);
+	strncpy(Firmware_Special, (char*)"TC011000-MS0000-V0r1.           ", 32);
 	//±àÒëʱ¼ä
 	do
 	{

Some files were not shown because too many files changed in this diff