Commit 1db795da authored by huangguoqing's avatar huangguoqing

feat:添加转向灯、远光灯、贴图

parent 7d6bd508
......@@ -55,5 +55,12 @@
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false
"C_Cpp_Runner.msvcSecureNoWarnings": false,
"files.associations": {
"tft_lcd.h": "c",
"can_communication_matrix.h": "c",
"display_info.h": "c",
"com_can.h": "c",
"task.h": "c"
}
}
\ No newline at end of file
......@@ -5,6 +5,8 @@
#include "Analog_Signals.h"
#include "RSCAN.h"
#include "Key.h"
#include "Display_Info.h"
uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
{
......@@ -283,3 +285,114 @@ void Can_Set_Buff_021(uint8_t CopyData [])
pCANMsg->Sig.Battery_temp = 1;
}
}
//NFC
void Can_Set_Buff_284(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg284Union *pCANMsg;
pCANMsg = (CANMsg284Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(NFC_C_card == 1)
{
pCANMsg->Sig.NFC_C_card = 1;
//Display_Can_Receive_Data(20,240);
}
else if((NFC_C_card == 2))
{
pCANMsg->Sig.NFC_C_card = 2;
}
}
/*软件版本号*/
extern uint8_t Data_786_1[8]= {0x03,0x22,0x10,0x24,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_2[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
/*硬件版本号*/
extern uint8_t Data_786_3[8]= {0x03,0x22,0xF1,0x93,0xAA,0xAA,0xAA,0xAA};
extern uint8_t Data_786_4[8]= {0x30,0x00,0x00,0xAA,0xAA,0xAA,0xAA,0xAA};
typedef struct {
uint8_t CANruanjian_ID1;
uint8_t CANruanjian_ID2;
uint8_t CANruanjian_ID3;
uint8_t CANruanjian_ID4;
uint8_t CANruanjian_ID5;
uint8_t CANruanjian_ID1_;
uint8_t CANruanjian_ID2_;
uint8_t CANruanjian_ID3_;
uint8_t CANruanjian_ID4_;
uint8_t CANruanjian_ID5_;
}CanData_step;
CanData_step CanData_step_={0};
void Can_Set_Buff_786(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg786Union *pCANMsg;
pCANMsg = (CANMsg786Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Diagnosis_banbenhao_flag == 1)
{
// pCANMsg->Sig.diagnosis0 = 0x03;
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_1[i];
}
Diagnosis_banbenhao_flag_=1;
// Get_CAN_CH4_ID_750_Diagnosis_return0();
}
if(Diagnosis_banbenhao_flag == 2)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_2[i];
}
Diagnosis_banbenhao_flag_=2;
}
else if(Diagnosis_banbenhao_flag == 3)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_3[i];
}
Diagnosis_banbenhao_flag_=3;
}
else if(Diagnosis_banbenhao_flag == 4)
{
for(uint8_t i = 0;i < 8;i++)
{
pCANMsg->Msg[i] = Data_786_4[i];
}
Diagnosis_banbenhao_flag_=4;
}
}
\ No newline at end of file
......@@ -2,6 +2,7 @@
#define _CAN_APP_H_
#include "RSCAN.h"
#include "Display_Info.h"
typedef union
{
......@@ -174,6 +175,68 @@ typedef union
} Sig;
} CANMsg021Union;
//NFC
// typedef union
// {
// uint8_t Msg [ 8 ];
// struct
// {
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :8;
// uint64_t :7;
// uint64_t NFC_C_card:1;
// uint64_t :8;
// uint64_t :8;
// } Sig;
// } CANMsg284Union;
typedef union
{
uint8_t Msg[8];
struct
{
uint64_t NFC_C_card:8;
//uint64_t NFC_C_card:1;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg284Union;
//诊断
typedef union
{
uint8_t Msg[8];
struct
{
uint64_t diagnosis0:8;
uint64_t diagnosis1:8;
uint64_t diagnosis2:8;
uint64_t diagnosis3:8;
uint64_t diagnosis4:8;
uint64_t diagnosis5:8;
uint64_t diagnosis6:8;
uint64_t diagnosis7:8;
} Sig;
} CANMsg786Union;
void CAN_MSG_COUNTER_PLUS(void);
......@@ -188,5 +251,12 @@ void Can_Set_Buff_280(uint8_t CopyData []);
void Can_Set_Buff_202(uint8_t CopyData []);
void Can_Set_Buff_001(uint8_t CopyData []);
void Can_Set_Buff_021(uint8_t CopyData []);
void Can_Set_Buff_284(uint8_t CopyData []);
void Can_Set_Buff_786(uint8_t CopyData []);
extern void Get_CAN_CH4_ID_750_Diagnosis_return1();
extern void Get_CAN_CH4_ID_750_Diagnosis_return2();
extern uint8_t VSpeed;
#endif
#include "CAN_Communication_Matrix.h"
#include "CAN_APP.h"
#include "RSCAN.h"
#include "Key.h"
/* 2022/11/19 14:29:55 */
st_CanMsgOp CAN_CH4_CanMsgOp;
st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
#define CAN_CH4 &CAN_CH4_CanMsgOp
uint8_t count = 0;
const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] =
{
......@@ -18,6 +20,8 @@ const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] =
{0x202, 100ul*1000ul, 35ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_10, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_202, (void *)0},//档位,续航里程,ready
{0x001, 100ul*1000ul, 40ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_11, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_001, (void *)0},//电机过热
{0x021, 100ul*1000ul, 45ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_12, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_021, (void *)0},//电池过热
{0x284, 100ul*1000ul, 50ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_13, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_284, (void *)0},//NFC
{0x786, 100ul*1000ul, 55ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_14, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_786, (void *)0},//诊断
};
const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] =
......@@ -47,7 +51,17 @@ const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x45l,
0x451ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x750ul,
(( void * )0),
(( void * )0),
(( void * )0),
......@@ -60,16 +74,18 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID)
uint8_t u8Result = CAN_CH4_ID_TOTAL_MAX;
switch (MsgID)
{
case CAN_CH4_ID_250_Msg_Count:
u8Result = CAN_CH4_ID_250_Msg;
case CAN_CH4_ID_250_Msg:
u8Result = CAN_CH4_ID_250_Msg_Count;
break;
case CAN_CH4_ID_450_Msg_Count:
u8Result = CAN_CH4_ID_450_Msg;
case CAN_CH4_ID_450_Msg:
u8Result = CAN_CH4_ID_450_Msg_Count;
break;
case CAN_CH4_ID_451_Msg_Count:
u8Result = CAN_CH4_ID_451_Msg;
case CAN_CH4_ID_451_Msg:
u8Result = CAN_CH4_ID_451_Msg_Count;
break;
case CAN_CH4_ID_750_Msg:
u8Result = CAN_CH4_ID_750_Msg_Count;
break;
default :
u8Result = CAN_CH4_ID_TOTAL_MAX;
break;
......@@ -77,3 +93,92 @@ uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID)
return u8Result;
}
//TCS模式设置
uint8_t Get_CAN_CH4_ID_250_TCS(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_250_Msg_Count,0u) >> 5u)));
}
//小计
uint8_t Get_CAN_CH4_ID_450_Trip(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_450_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//总计
uint8_t Get_CAN_CH4_ID_450_Mileage(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_450_Msg_Count, 3u) >> 0u) & 0xFFu));
}
//诊断返回信息1_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_5(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_6(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_7(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//诊断返回信息2_7
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_3(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_4(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 4u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_5(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 5u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_6(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_7(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 7u) >> 0u) & 0xFFu));
}
//诊断返回信息3_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_1(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 1u) >> 0u) & 0xFFu));
// 读取CAN通道4,ID为750的消息的字节5
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_2(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_3(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH4,CAN_CH4_ID_750_Msg_Count, 3u) >> 0u) & 0xFFu));
}
void Can_ID_750_Receive(uint8_t CopyData[])
{
Get_CAN_CH4_ID_750_Diagnosis_return1();
}
\ No newline at end of file
......@@ -7,13 +7,14 @@
extern st_CanMsgOp CAN_CH4_CanMsgOp;
extern st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
extern uint8_t count;
typedef enum
{
CAN_CH4_ID_250_Msg_Count,
CAN_CH4_ID_450_Msg_Count,
CAN_CH4_ID_451_Msg_Count,
CAN_CH4_ID_750_Msg_Count,
CAN_CH4_ID_TOTAL_MAX,
} CAN_CH4_CAN_MSG_ID_t;
......@@ -28,6 +29,8 @@ typedef enum
CAN_CH4_ID_202,
CAN_CH4_ID_001,
CAN_CH4_ID_021,
CAN_CH4_ID_284,
CAN_CH4_ID_786,
CAN_CH4_ID_SEND_TOTAL,
} CAN_CH4_CAN_MSG_SEND_ID_t;
......@@ -35,9 +38,37 @@ typedef enum
extern const st_CANMsgAttribute CAN_CH4_CAN_MSG_CONST_ARRAY[CAN_CH4_ID_TOTAL_MAX] ;
extern const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] ;
//小计
extern uint8_t Get_CAN_CH4_ID_450_Trip(void);
//TCS模式设置
extern uint8_t Get_CAN_CH4_ID_250_TCS(void);
//总计
extern uint8_t Get_CAN_CH4_ID_450_Mileage(void);
//诊断返回信息1
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_5(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_6(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return750_1_7(void);
//诊断返回信息2_7
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_1(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_2(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_3(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_4(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_5(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_6(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return2_7(void);
//诊断返回信息3_3
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_1(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_2(void);
uint8_t Get_CAN_CH4_ID_750_Diagnosis_return3_3(void);
static void Can_ID_750_Receive();
#define CAN_CH4_ID_250_Msg 0x250u
#define CAN_CH4_ID_450_Msg 0x450u
#define CAN_CH4_ID_451_Msg 0x451u
#define CAN_CH4_ID_750_Msg 0x750u
extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID);
#endif
......@@ -68,7 +68,15 @@ void Display_Init(void);
extern void Send_ODO_Init(void);
void Display_Send_ODO(uint8_t fuel);
void Display_Send_Vspead(uint8_t menu);
void Display_flag(uint8_t Check_Steps);
void Display_buffer_Data(uint8_t buffer[] , uint16_t X,uint8_t Y);
void Display_Can_Data(uint8_t Data , uint16_t X,uint8_t Y);
void Display_buffer_ID(uint16_t X,uint8_t Y);
void Display_Chaka_Model(void);
void Display_interface_learning_card(uint16_t X,uint8_t Y);
//void Display_Can_Receive_Data(uint8_t Data[] , uint16_t X,uint8_t Y);
void Display_Can_Receive_Data(uint16_t X,uint8_t Y);
void Display_Set_Buff(void);
extern void Send_Init(void);
......@@ -97,6 +105,19 @@ extern uint32_t loc_Current_0;
extern void Get_static_Current(void);
extern uint32_t Get_Display_Type(void);
extern void Display_Num(uint16_t StartX, uint16_t StartY,uint16_t m_NUM,uint8_t CbkCycle);
void Get_CAN_CH4_ID_750_Diagnosis_return1();
void Get_CAN_CH4_ID_750_Diagnosis_return2();
extern const uint8_t *Num_15[];
typedef struct {
uint8_t going[5];
uint8_t succeed[7];
uint8_t fail[4];
uint8_t sameID[7];
} Learning_Card;
// extern uint8_t canData[3][8];
extern uint8_t canData2[14];
extern uint8_t canData3[10];
extern uint8_t canData4[8];
//extern u8_All_Flag_t All_Flag;
#define PCodeText_Space_size 2//故障文字 英文空格的像素数
#endif
......@@ -2,6 +2,7 @@
#define KEY_H__
#include "TYW_stdint.h"
#include "Display_Info.h"
#define Check_KeepTime 3000 //每个步骤保持时间
#define Check_Couont 11 //多少个步骤
......@@ -73,6 +74,26 @@ typedef struct
} Key_Attribute_st_t;
typedef union
{
uint8_t u8flag[8];
struct
{
uint8_t u8_SW_2 : 1;
uint8_t u8_SW_6 : 1;
uint8_t u8_SW_7 : 1;
uint8_t u8_SW_8 : 1;
uint8_t u8_SW_10 : 1;
uint8_t : 3;
}KEY_flag;
} u8_All_Flag_t;
/*--------------------------------------------------------------------------------------------*/
extern const Key_Attribute_st_t stKeyAttribute [ KEY_NUM_MAX ];
extern Key_Real_Status_en_t enKeyLeftRealStatus;
......@@ -102,7 +123,12 @@ extern uint8_t Cruiste;
extern uint8_t Fault;
extern uint8_t Motor_hert;
extern uint8_t Battery_temp;
extern uint8_t NFC_C_card;
extern u8_All_Flag_t All_Flag;
extern uint8_t Diagnosis_banbenhao_flag;
extern uint8_t Diagnosis_banbenhao_flag_;
extern uint16_t testtime;
......
......@@ -22,6 +22,21 @@ uint8_t Cruiste = 0;
uint8_t Fault = 0;
uint8_t Motor_hert = 0;
uint8_t Battery_temp = 0;
uint8_t NFC_C_card = 0;
uint8_t Diagnosis_banbenhao_flag = 0;
uint8_t Diagnosis_banbenhao_flag_ = 0;
uint8_t key_flag = 0;
u8_All_Flag_t All_Flag = {0};
// All_Flag.KEY.Key1 = 0;
uint8_t detection_protect = 0;
uint8_t Key10_Flag = 0;
uint8_t SW_Protect_flag[11]={0};
void Key_Operation_SW1(Key_Event_en_t enKeyEvent)
{
/*清零ODO*/
......@@ -51,6 +66,11 @@ void Key_Operation_SW2(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[0] = 1;
Display_TFT_Clear();
Display_Chaka_Model();//查卡模式
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{
......@@ -111,6 +131,11 @@ void Key_Operation_SW6(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[1] = 1;
Check_Steps = 0;
Display_TFT_Clear();
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
......@@ -124,6 +149,12 @@ void Key_Operation_SW7(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[2] = 1;
Check_Steps = 0;
Display_TFT_Clear();
//界面学卡:
Display_interface_learning_card(20,80);
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
{
......@@ -140,6 +171,16 @@ void Key_Operation_SW8(Key_Event_en_t enKeyEvent)
{
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
memset(&All_Flag, 0, sizeof(All_Flag));
All_Flag.u8flag[3] = 1;
Diagnosis_banbenhao_flag=1;
Display_TFT_Clear();
//版本号界面
//Display_Version_Info(1);
Display_Can_Receive_Data(5,50);
}
else if ( enKeyEvent == KEY_EVENT_LONG_PRESS )
......@@ -188,13 +229,21 @@ void Key_Operation_SW10(Key_Event_en_t enKeyEvent)
/*清零ODO*/
if ( enKeyEvent == KEY_EVENT_SHORT_PRESS )
{
memset(&All_Flag, 0, sizeof(All_Flag));
// All_Flag.u8flag[1] = 1;
All_Flag.u8flag[4] = 1;
if(Check_Control_Mode == 2)
{
if((( All_Flag.u8flag[0] == 0) && ( All_Flag.u8flag[1] == 0)&& ( All_Flag.u8flag[2] == 0) && (( All_Flag.u8flag[3] == 0))))
{
Check_Steps++;
Display_flag(Check_Steps);
if(Check_Steps > Check_Couont)
{
Check_Steps = 0;
}
}
}
}
......
......@@ -21,6 +21,8 @@
#include "api_RS485.h"
#include "RTE_WDT.h"
#include "R485_Communication_Matrix.h"
#include "CAN_Communication_Matrix.h"
#include "CAN_APP.h"
/*******************************************************************************
* *
* ϵͳ��������ģʽ(SYS_MODE_OFF / SYS_MODE_ON / SYS_MODE_STANDBY )�����б� *
......@@ -119,11 +121,15 @@ uint16_t time5s = 0;
uint16_t IGFLAG = 0;
uint16_t testtime = 0;
uint8_t can_flag = 100;
uint8_t *pcan_data = &can_flag;
uint8_t test[10] = {0x56,0x0B,0x0C,0x0D,0x1,0x2,0x3,0x4,0x05,0xFF};
void Sys_Run_Mode_100ms_Tasks_Group(void)
{
Display_PageNum();
Display_Send_Vspead();
User_CheckMode_Service(100u);
//TFT_LCD_Draw_Bmp(3, 40, ( uint8_t * )gImage_Dsy_words_1X6_Y16);
POWER_CTRL_KL30 = 1;
......
......@@ -10,6 +10,12 @@ extern uint32_t bleOFFtoONtime;
extern uint8_t startONfalg;
extern uint32_t startIGONtime;
extern uint8_t Openble[11];
extern uint8_t canData_banben[14];
extern uint16_t decimal_candata[14];
extern uint8_t can_flag;
void Sys_Run_Mode_Pseudo_Real_Time_Tasks(void);
void Sys_Run_Mode_2ms_Tasks_Group(void);
void Sys_Run_Mode_5ms_Tasks_Group(void);
......
......@@ -792,6 +792,80 @@ void RSCAN0_CH4_Receive(CAN_Frame_st_t *pstCANFrame)
if (g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack)
{
g_stRSCAN0Config.stRSCANCh4.pfnRSCANReadMsgCallBack(pstCANFrame->u32CANID, pstCANFrame->u8CANLEN, pstCANFrame->unCANData.u8CANData);
if(Diagnosis_banbenhao_flag_==1)//准备接收第一段数据(软件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
/*第一步*/
canData2[0] = pstCANFrame->unCANData.u8CANData[5];
canData2[1] = pstCANFrame->unCANData.u8CANData[6];
canData2[2] = pstCANFrame->unCANData.u8CANData[7];
}
Diagnosis_banbenhao_flag=2;
}
if(Diagnosis_banbenhao_flag_==2)//准备接收第二段数据(软件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
/*第二步*/
if ((pstCANFrame->unCANData.u8CANData[0] == 0x21)&&(pstCANFrame->unCANData.u8CANData[1] == 0x30))
{
memcpy(canData1,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
}
for (uint8_t i = 0; i < 7; i++)
{
canData2[i + 3] = canData1[i+1];
}
/*第三步*/
canData2[10]=pstCANFrame->unCANData.u8CANData[1];
canData2[11]=pstCANFrame->unCANData.u8CANData[2];
canData2[12]=pstCANFrame->unCANData.u8CANData[3];
canData2[13]=0xFF;
}
Diagnosis_banbenhao_flag=3;
}
if(Diagnosis_banbenhao_flag_==3)//准备接收数据(硬件版本号)
{
if(pstCANFrame->u32CANID==0x750u)
{
if ((pstCANFrame->unCANData.u8CANData[0] == 0x10)&&(pstCANFrame->unCANData.u8CANData[7] == 0x46))
{
memcpy(canData1,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
for (uint8_t i = 0; i < 3; i++)
{
canData3[i] = canData1[i+5];
}
}
}
Diagnosis_banbenhao_flag=4;
}
if(Diagnosis_banbenhao_flag_==4)
{
if(pstCANFrame->u32CANID==0x750u)
{
if ((pstCANFrame->unCANData.u8CANData[0] == 0x21)&&(pstCANFrame->unCANData.u8CANData[7] == 0xAA))
{
memcpy(canData4,pstCANFrame->unCANData.u8CANData,pstCANFrame->u8CANLEN);
// for (uint8_t i = 0; i < 6; i++)
// {
// canData3[i+3] = canData4[i+2];
// }
canData3[3] = canData4[1];
canData3[4] = canData4[2];
canData3[5] = canData4[3];
canData3[6] = canData4[4];
canData3[7] = canData4[5];
canData3[8] = canData4[6];
canData3[9]=0XFF;
}
}
}
}
}
void RSCAN0_CH5_Receive(CAN_Frame_st_t *pstCANFrame)
......
#new Option
#Mon Dec 16 20:50:58 CST 2024
#Thu Jun 05 08:24:11 CST 2025
IsSort=true
MergeFlashIsCompression=false
ChangeAppFilePath=
......@@ -31,7 +31,7 @@ IsMergeCreateBin=false
IsOverWrite=true
DllFilePath=
MergeAudioOutPutPath=
MergeCanOutPutPath=
MergeCanOutPutPath=D\:\\Desktop\\jiancetai
ChangeOutPutFilePath=
MergeTelltalesOutPutPath=
TTFExtractTXTpath=
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment