Commit 4f21b111 authored by 王佳伟's avatar 王佳伟

feat:替换CAN库

parent a712640a
......@@ -3,7 +3,8 @@
#include "CAN_APP.h"
#include "CAN_Communication_Matrix.h"
#include "Analog_Signals.h"
#include "RSCAN.h"
#include "Key.h"
uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
{
......@@ -30,166 +31,345 @@ uint8_t CrcCheckSum(uint8_t *data, uint8_t len)
return crc;
}
void Can_Write_Fun_APP(void)
{
}
void Can_Abort_Confirm(uint32_t Identifier, uint8_t TransferStatus)
{
}
void CAN_QuickTimer_Init(void)
{
}
void NODE_26D_SET_Confirm(void)
{
}
void Can_BusOff_Fun(void)
{
}
void Can_BusOffRecover(void)
{
}
void Can_Set_Buff_260(uint8_t CopyData [])
{
}
void Can_Set_Buff_280(uint8_t CopyData [])
{
}
void Can_Set_Buff_380(uint8_t CopyData [])
{
}
void Can_Set_Buff_385(uint8_t CopyData [])
{
}
void Can_Set_Buff_52E(uint8_t CopyData [])
{
}
void Can_Set_Buff_69B(uint8_t CopyData [])
{
}
void Can_Set_Buff_28A(uint8_t CopyData [])
{
}
void Can_Set_Buff_2E1(uint8_t CopyData [])
{
}
void Can_Set_Buff_228(uint8_t CopyData [])
{
}
void Can_Set_Buff_211(uint8_t CopyData [])
{
}
void Can_Set_Buff_341(uint8_t CopyData [])
void CAN_MSG_COUNTER_PLUS(void)
{
}
void Can_Set_Buff_128(uint8_t CopyData [])
uint8_t VSpeed = 0;
void Can_Set_Buff_200(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
VSpeed = 0;
CANMsg220Union *pCANMsg;
}
void Can_Set_Buff_24A(uint8_t CopyData [])
{
pCANMsg = (CANMsg220Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
switch(Check_Steps)
{
case 0:
VSpeed = 0;
break;
case 1:
VSpeed = 10;
break;
case 2:
VSpeed = 19;
break;
case 3:
VSpeed = 29;
break;
case 4:
VSpeed = 38;
break;
case 5:
VSpeed = 47;
break;
case 6:
VSpeed = 57;
break;
case 7:
VSpeed = 75;
break;
case 8:
VSpeed = 88;
break;
case 9:
VSpeed = 88;
break;
case 10:
VSpeed = 88;
break;
case 11:
VSpeed = 88;
break;
}
pCANMsg->Sig.Vspeeed = VSpeed;
}
void Can_Set_Buff_35A(uint8_t CopyData [])
void Can_Set_Buff_481(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg481Union *pCANMsg;
}
void Can_Set_Buff_135(uint8_t CopyData [])
{
pCANMsg = (CANMsg481Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
pCANMsg->Sig.Year = 1;
pCANMsg->Sig.Month = 1;
pCANMsg->Sig.Day = 1;
pCANMsg->Sig.Minute = 0;
pCANMsg->Sig.Second = 0;
pCANMsg->Sig.Hour = Hour;
}
void Can_Set_Buff_153(uint8_t CopyData [])
{
}
void Can_Set_Buff_131(uint8_t CopyData [])
void Can_Set_Buff_020(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg020Union *pCANMsg;
}
void Can_Set_Buff_139(uint8_t CopyData [])
{
pCANMsg = (CANMsg020Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
switch(Check_Steps)
{
case 0:
pCANMsg->Sig.Eletricity_H = 0;
pCANMsg->Sig.Eletricity_L = 0;
break;
case 1:
pCANMsg->Sig.Eletricity_H = 0;
pCANMsg->Sig.Eletricity_L = 0;
break;
case 2:
pCANMsg->Sig.Eletricity_H = 0;
pCANMsg->Sig.Eletricity_L = 0x96;
break;
case 3:
pCANMsg->Sig.Eletricity_H = 0x01;
pCANMsg->Sig.Eletricity_L = 0x5E;
break;
case 4:
pCANMsg->Sig.Eletricity_H = 0x02;
pCANMsg->Sig.Eletricity_L = 0x26;
break;
case 5:
pCANMsg->Sig.Eletricity_H = 0x02;
pCANMsg->Sig.Eletricity_L = 0xEE;
break;
case 6:
pCANMsg->Sig.Eletricity_H = 0x03;
pCANMsg->Sig.Eletricity_L = 0xE8;
break;
case 7:
pCANMsg->Sig.Eletricity_H = 0x02;
pCANMsg->Sig.Eletricity_L = 0xEE;
break;
case 8:
pCANMsg->Sig.Eletricity_H = 0x02;
pCANMsg->Sig.Eletricity_L = 0x26;
break;
case 9:
pCANMsg->Sig.Eletricity_H = 0x01;
pCANMsg->Sig.Eletricity_L = 0x5E;
break;
case 10:
pCANMsg->Sig.Eletricity_H = 0;
pCANMsg->Sig.Eletricity_L = 0x96;
break;
case 11:
pCANMsg->Sig.Eletricity_H = 0x03;
pCANMsg->Sig.Eletricity_L = 0xE8;
break;
}
void Can_Set_Buff_431(uint8_t CopyData [])
{
}
}
void Can_Set_Buff_5e0(uint8_t CopyData [])
{
}
void Can_Set_Buff_236(uint8_t CopyData [])
void Can_Set_Buff_042(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg042Union *pCANMsg;
pCANMsg = (CANMsg042Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Tcs == 1)
{
pCANMsg->Sig.Tcs_mode = 1;
pCANMsg->Sig.Tcs_Control = 1;
}
else if(Tcs == 2)
{
pCANMsg->Sig.Tcs_Control = 1;
}
else
{
;
}
}
void Can_Set_Buff_168(uint8_t CopyData [])
{
}
void Can_Set_Buff_0F6(uint8_t CopyData [])
void Can_Set_Buff_480(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg480Union *pCANMsg;
pCANMsg = (CANMsg480Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
pCANMsg->Sig.Signal_Gps = Signal_GPS;
pCANMsg->Sig.Signal_4g = Signal_4G;
}
void Can_Set_Buff_0E1(uint8_t CopyData [])
{
}
void Can_Set_Buff_036(uint8_t CopyData [])
void Can_Set_Buff_280(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg280Union *pCANMsg;
}
void Can_Set_Buff_0B6(uint8_t CopyData [])
{
pCANMsg = (CANMsg280Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Energy_recovery == 2)
{
pCANMsg->Sig.Energy_status = 1;
pCANMsg->Sig.Energy_recovery = 2;
pCANMsg->Sig.Side_bracket = 1;
}
else if(Energy_recovery == 1)
{
pCANMsg->Sig.Energy_status = 1;
pCANMsg->Sig.Energy_recovery = 1;
}
else if(Energy_recovery == 3)
{
pCANMsg->Sig.Energy_status = 1;
pCANMsg->Sig.Energy_recovery = 3;
}
else
{
;
}
if(Tcs == 1)
{
pCANMsg->Sig.Tcs_Status = 1;
}
}
void Can_Set_Buff_320(uint8_t CopyData [])
void Can_Set_Buff_202(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg202Union *pCANMsg;
}
pCANMsg = (CANMsg202Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Gear == 0)
{
pCANMsg->Sig.Gear = 0;
}
else if(Gear == 1)
{
pCANMsg->Sig.Gear = 1;
}
else if(Gear == 2)
{
pCANMsg->Sig.Gear = 2;
}
void Can_Set_Buff_152(uint8_t CopyData [])
{
if(Cruiste == 1)
{
pCANMsg->Sig.Cruiste = 1;
}
if(Ready == 1)
{
pCANMsg->Sig.Ready = 1;
}
else if(Ready == 2)
{
pCANMsg->Sig.Ready = 2;
}
else if(Ready == 3 )
{
pCANMsg->Sig.Ready = 3;
}
if(Fault == 1)
{
pCANMsg->Sig.Fault = 1;
}
}
void Can_Set_Buff_1A1(uint8_t CopyData [])
void Can_Set_Buff_001(uint8_t CopyData [])
{
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg001Union *pCANMsg;
pCANMsg = (CANMsg001Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Motor_hert == 1)
{
pCANMsg->Sig.Motor_hert = 1;
}
}
void Can_Set_Buff_75F(uint8_t CopyData [])
void Can_Set_Buff_021(uint8_t CopyData [])
{
}
uint8_t i = 0u;
uint32_t wtemp = 0u;
CANMsg021Union *pCANMsg;
void Can_Set_Buff_389(uint8_t CopyData [])
{
pCANMsg = (CANMsg021Union *)CopyData;
if ( pCANMsg != ( void * )0 )
{
for ( i = 0u; i < 8u; i++ )
{
pCANMsg->Msg [ i ] = 0u;
}
}
if(Battery_temp == 1)
{
pCANMsg->Sig.Battery_temp = 1;
}
}
#ifndef _CAN_APP_H_
#define _CAN_APP_H_
void Can_Abort_All(void);
void CAN_QuickTimer_Init(void);
void Can_Write_Fun_APP(void);
void Can_BusOff_Fun(void);
void Can_Set_Buff_260(uint8_t CopyData []);
void Can_Set_Buff_280(uint8_t CopyData []);
void Can_Set_Buff_380(uint8_t CopyData []);
void Can_Set_Buff_385(uint8_t CopyData []);
void Can_Set_Buff_52E(uint8_t CopyData []);
void Can_Set_Buff_69B(uint8_t CopyData []);
void Can_Set_Buff_28A(uint8_t CopyData []);
void Can_Set_Buff_2E1(uint8_t CopyData []);
void Can_Set_Buff_0E1(uint8_t CopyData []);
void Can_Set_Buff_0F6(uint8_t CopyData []);
void Can_Set_Buff_036(uint8_t CopyData []);
void Can_Set_Buff_0B6(uint8_t CopyData []);
void Can_Set_Buff_320(uint8_t CopyData []);
void Can_Set_Buff_152(uint8_t CopyData []);
void Can_Set_Buff_153(uint8_t CopyData []);
void Can_Set_Buff_168(uint8_t CopyData []);
void Can_Set_Buff_128(uint8_t CopyData []);
void Can_Set_Buff_139(uint8_t CopyData []);
void Can_Set_Buff_131(uint8_t CopyData []);
void Can_Set_Buff_24A(uint8_t CopyData []);
void Can_Set_Buff_1A1(uint8_t CopyData []);
void Can_Set_Buff_389(uint8_t CopyData []);
void Can_Set_Buff_135(uint8_t CopyData []);
void Can_Set_Buff_35A(uint8_t CopyData []);
void Can_Set_Buff_341(uint8_t CopyData []);
void Can_Set_Buff_211(uint8_t CopyData []);
void Can_Set_Buff_228(uint8_t CopyData []);
void Can_Set_Buff_431(uint8_t CopyData []);
void Can_Set_Buff_5e0(uint8_t CopyData []);
void Can_Set_Buff_236(uint8_t CopyData []);
void Can_Set_Buff_75F(uint8_t CopyData []);
void Can_BusOffRecover(void);
#include "RSCAN.h"
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :8;
uint64_t :8;
uint64_t Vspeeed :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg220Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t Year :8;
uint64_t Month :8;
uint64_t Day :8;
uint64_t Hour :8;
uint64_t Minute :8;
uint64_t Second :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg481Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :8;
uint64_t :8;
uint64_t Eletricity_H:8;
uint64_t Eletricity_L:8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg020Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :8;
uint64_t :8;
uint64_t TCS:4;
uint64_t :2;
uint64_t Tcs_mode:1;
uint64_t Tcs_Control:1;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg042Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t Signal_4g:8;
uint64_t Signal_Gps:8;
uint64_t :6;
uint64_t Blooth_phone:1;
uint64_t Blooth_led:1;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg480Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t Energy_status:1;
uint64_t :2;
uint64_t Side_bracket:1;
uint64_t Tcs_Status:1;
uint64_t Energy_recovery:2;
uint64_t :1;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg280Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :2;
uint64_t Gear:2;
uint64_t :4;
uint64_t :4;
uint64_t Ready:2;
uint64_t Cruiste:1;
uint64_t :1;
uint64_t :2;
uint64_t Fault:1;
uint64_t :5;
uint64_t Range:8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg202Union;
typedef union
{
uint8_t Msg [ 8 ];
struct
{
uint64_t :8;
uint64_t :8;
uint64_t :4;
uint64_t Motor_hert:1;
uint64_t :3;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg001Union;
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 Battery_temp:1;
uint64_t :8;
uint64_t :8;
} Sig;
} CANMsg021Union;
void CAN_MSG_COUNTER_PLUS(void);
uint8_t CrcCheckSum(uint8_t *data, uint8_t len);
void Can_Set_Buff_200(uint8_t CopyData []);
void Can_Set_Buff_481(uint8_t CopyData []);
void Can_Set_Buff_020(uint8_t CopyData []);
void Can_Set_Buff_042(uint8_t CopyData []);
void Can_Set_Buff_480(uint8_t CopyData []);
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 []);
extern uint8_t VSpeed;
#endif
#include "CAN_Communication_Matrix.h"
#include "CAN_APP.h"
/* 2021/08/08 16:54:40 */
/*
can1 0- 31
can2 32- 63
can4 64 95
*/
//Tx:
const st_CAN_SendAttribute st_CANSendAttr [ ID_SEND_TOTAL ] = {
{0x2E1ul, 50ul * 1000ul, 0ul, 0u, 0, 64u, 8u, 0, Can_Set_Buff_2E1, ( void * )0},
#include "RSCAN.h"
/* 2022/11/19 14:29:55 */
st_CanMsgOp CAN_CH4_CanMsgOp;
st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
#define CAN_CH4 &CAN_CH4_CanMsgOp
const st_CAN_SendAttribute CAN_CH4_CANSendAttr[CAN_CH4_ID_SEND_TOTAL] =
{
{0x200, 100ul*1000ul, 5ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_4, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_200, (void *)0},//车速
{0x481, 500ul*1000ul, 10ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_5, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_481, (void *)0},//时间
{0x020, 100ul*1000ul, 15ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_6, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_020, (void *)0},//电量
{0x042, 10ul*1000ul, 20ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_7, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_042, (void *)0},//tcs
{0x480, 500ul*1000ul, 25ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_8, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_480, (void *)0},//GPS,4G,电话,蓝牙指示灯
{0x280, 100ul*1000ul, 30ul, 0u, MSG_STD, RSCAN_CHANNEL_BUF_9, 8u, CAN_MSG_TX_CYCLE, Can_Set_Buff_280, (void *)0},//tcs,能量回收
{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},//电池过热
};
//Rx:
const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ] =
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},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x10FF4117ul,
(( 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,
0x18FEAE17ul,
(( 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,
0x10FF1017ul,
0x250ul,
(( void * )0),
(( void * )0),
(( void * )0),
......@@ -54,7 +37,7 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x18FEC1EEul,
0x450ul,
(( void * )0),
(( void * )0),
(( void * )0),
......@@ -64,17 +47,7 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0xCFE6CEEul,
(( 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,
0x18FEFC17ul,
0x45l,
(( void * )0),
(( void * )0),
(( void * )0),
......@@ -82,168 +55,25 @@ const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ] =
};
uint32_t Get_ID_ODO(void)
{
uint32_t ret = 0;
ret = Get_CAN_CH0_ID_18FEC1EE_Sig_Total_Vehicle_Distance();
ret = ret / 200 ;
return ret;
}
uint32_t Get_ID_FUEL(void)
{
uint32_t ret = 0;
ret = Get_CAN_CH0_ID_18FEFC17_Sig_Fuel_level();
ret = ret * 2 / 5;
return ret;
}
uint32_t Get_ID_VSpeed(void)
{
uint32_t ret = 0;
ret = Get_CAN_CH0_ID_0CFE6CEE_Sig_Tachograph_vehicle_speed();
ret = ret / 256;
return ret;
}
uint8_t Get_ID_HandBrakeSts(void)
uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID)
{
uint8_t ret = 0;
ret = Get_CAN_CH0_ID_10FF4117_Sig_IC_HandBrakeSts();
return ret;
}
uint8_t Get_CAN_CH0_ID_10FF4117_Sig_IC_HCSPS_LampFailSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF4117_Msg_Count, 1u) >> 0u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF4117_Sig_BackUPSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF4117_Msg_Count, 0u) >> 2u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF4117_Sig_Seatbeltsts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF4117_Msg_Count, 0u) >> 0u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF4117_Sig_IC_HandBrakeSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF4117_Msg_Count, 0u) >> 6u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_18FEAE17_Sig_Service_Brake_Circuit_2_Air_Pressure(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEAE17_Msg_Count, 3u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_18FEAE17_Sig_Service_Brake_Circuit_1_Air_Pressure(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEAE17_Msg_Count, 2u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_HeatedMirrorSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 2u) >> 2u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_RearFogLightSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 2u) >> 4u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_FrontFogLightSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 2u) >> 6u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_LowBeamSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 1u) >> 0u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_HighBeamSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 1u) >> 2u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_LHParkTailLightSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 1u) >> 4u) & 0x03u));
}
uint8_t Get_CAN_CH0_ID_10FF1017_Sig_RHParkTailLightSts(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send10FF1017_Msg_Count, 1u) >> 6u) & 0x03u));
}
uint32_t Get_CAN_CH0_ID_18FEC1EE_Sig_Total_Vehicle_Distance(void)
{
return (((uint32_t)((uint32_t)((uint32_t)((uint32_t)((uint32_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEC1EE_Msg_Count, 3u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEC1EE_Msg_Count, 2u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEC1EE_Msg_Count, 1u) >> 0u) & 0xFFu) << 8u) + \
((uint32_t)((uint32_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEC1EE_Msg_Count, 0u) >> 0u) & 0xFFu));
}
uint16_t Get_CAN_CH0_ID_0CFE6CEE_Sig_Tachograph_vehicle_speed(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0_ID_Send0CFE6CEE_Msg_Count, 7u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0_ID_Send0CFE6CEE_Msg_Count, 6u) >> 0u) & 0xFFu));
}
uint8_t Get_CAN_CH0_ID_18FEFC17_Sig_Fuel_level(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0_ID_Send18FEFC17_Msg_Count, 0u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID(uint32_t MsgID)
{
uint8_t u8Result = CAN_CH0_ID_TOTAL_MAX;
uint8_t u8Result = CAN_CH4_ID_TOTAL_MAX;
switch (MsgID)
{
case CAN_CH0_ID_Send10FF4117_Msg:
u8Result = CAN_CH0_ID_Send10FF4117_Msg_Count;
break;
case CAN_CH0_ID_Send18FEAE17_Msg:
u8Result = CAN_CH0_ID_Send18FEAE17_Msg_Count;
break;
case CAN_CH0_ID_Send10FF1017_Msg:
u8Result = CAN_CH0_ID_Send10FF1017_Msg_Count;
break;
case CAN_CH0_ID_Send18FEC1EE_Msg:
u8Result = CAN_CH0_ID_Send18FEC1EE_Msg_Count;
break;
case CAN_CH0_ID_Send0CFE6CEE_Msg:
u8Result = CAN_CH0_ID_Send0CFE6CEE_Msg_Count;
break;
case CAN_CH0_ID_Send18FEFC17_Msg:
u8Result = CAN_CH0_ID_Send18FEFC17_Msg_Count;
case CAN_CH4_ID_250_Msg_Count:
u8Result = CAN_CH4_ID_250_Msg;
break;
case CAN_CH4_ID_450_Msg_Count:
u8Result = CAN_CH4_ID_450_Msg;
break;
case CAN_CH4_ID_451_Msg_Count:
u8Result = CAN_CH4_ID_451_Msg;
break;
default :
u8Result = CAN_CH0_ID_TOTAL_MAX;
u8Result = CAN_CH4_ID_TOTAL_MAX;
break;
}
return u8Result;
}
#ifndef CAN_COMMUNICATION_MATRIX_H_
#define CAN_COMMUNICATION_MATRIX_H_
#ifndef CAN_CH4_CAN_COMMUNICATION_MATRIX_H_
#define CAN_CH4_CAN_COMMUNICATION_MATRIX_H_
#include "TYW_stdint.h"
#include "CAN_Lib.h"
typedef enum
{
CAN_CH0_ID_Send10FF4117_Msg_Count,
CAN_CH0_ID_Send18FEAE17_Msg_Count,
CAN_CH0_ID_Send10FF1017_Msg_Count,
CAN_CH0_ID_Send18FEC1EE_Msg_Count,
CAN_CH0_ID_Send0CFE6CEE_Msg_Count,
CAN_CH0_ID_Send18FEFC17_Msg_Count,
extern st_CanMsgOp CAN_CH4_CanMsgOp;
CAN_CH0_ID_TOTAL_MAX,
} CAN_MSG_ID_t;
extern st_CanMsgTxOp CAN_CH4_CanMsgTxOp;
typedef enum
{
ID_2E1_COUNT,
ID_SEND_TOTAL,
} CAN_MSG_SEND_ID_t;
extern const st_CANMsgAttribute CAN_MSG_CONST_ARRAY [ CAN_CH0_ID_TOTAL_MAX ];
extern const st_CAN_SendAttribute st_CANSendAttr[ID_SEND_TOTAL] ;
#define CAN_CH0_ID_Send10FF4117_Msg 0x10FF4117ul
#define CAN_CH0_ID_Send18FEAE17_Msg 0x18FEAE17ul
#define CAN_CH0_ID_Send10FF1017_Msg 0x10FF1017ul
#define CAN_CH0_ID_Send18FEC1EE_Msg 0x18FEC1EEul
#define CAN_CH0_ID_Send0CFE6CEE_Msg 0x0CFE6CEEul
#define CAN_CH0_ID_Send18FEFC17_Msg 0x18FEFC17ul
extern uint32_t Get_ID_ODO(void);
extern uint32_t Get_ID_FUEL(void);
extern uint8_t Get_ID_HandBrakeSts(void);
extern uint32_t Get_ID_VSpeed(void);
CAN_CH4_ID_250_Msg_Count,
CAN_CH4_ID_450_Msg_Count,
CAN_CH4_ID_451_Msg_Count,
extern uint8_t Get_CAN_CH0_ID_10FF4117_Sig_IC_HCSPS_LampFailSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF4117_Sig_BackUPSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF4117_Sig_Seatbeltsts(void);
extern uint8_t Get_CAN_CH0_ID_10FF4117_Sig_IC_HandBrakeSts(void);
extern uint8_t Get_CAN_CH0_ID_18FEAE17_Sig_Service_Brake_Circuit_2_Air_Pressure(void);
extern uint8_t Get_CAN_CH0_ID_18FEAE17_Sig_Service_Brake_Circuit_1_Air_Pressure(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_HeatedMirrorSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_RearFogLightSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_FrontFogLightSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_LowBeamSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_HighBeamSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_LHParkTailLightSts(void);
extern uint8_t Get_CAN_CH0_ID_10FF1017_Sig_RHParkTailLightSts(void);
extern uint32_t Get_CAN_CH0_ID_18FEC1EE_Sig_Total_Vehicle_Distance(void);
extern uint16_t Get_CAN_CH0_ID_0CFE6CEE_Sig_Tachograph_vehicle_speed(void);
extern uint8_t Get_CAN_CH0_ID_18FEFC17_Sig_Fuel_level(void);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
CAN_CH4_ID_TOTAL_MAX,
} CAN_CH4_CAN_MSG_ID_t;
typedef enum
{
CAN_CH4_ID_200,
CAN_CH4_ID_481,
CAN_CH4_ID_020,
CAN_CH4_ID_042,
CAN_CH4_ID_480,
CAN_CH4_ID_280,
CAN_CH4_ID_202,
CAN_CH4_ID_001,
CAN_CH4_ID_021,
CAN_CH4_ID_SEND_TOTAL,
} CAN_CH4_CAN_MSG_SEND_ID_t;
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] ;
#define CAN_CH4_ID_250_Msg 0x250u
#define CAN_CH4_ID_450_Msg 0x450u
#define CAN_CH4_ID_451_Msg 0x451u
extern uint8_t Co_Can_ConvertSubID_CAN_CH4(uint32_t MsgID);
#endif
#ifndef COM_CAN_H
#define COM_CAN_H
void COM_CAN_Init(void);
void COM_RX_Process(void);
void Msg_Load_Init(void);
extern void Execute_Specify_Step(unsigned int step);
unsigned int Check_Infordata_CRC_32(unsigned char p [], unsigned int len);
unsigned int Get_Total_CheckStep(void);
void COM_CAN_Init(void);
void COM_RX_Process(void);
void COM_TX_Process(void);
#endif
#endif
\ No newline at end of file
......@@ -44,7 +44,7 @@ extern unsigned int loc_Step;
extern unsigned char KEYBUFFER [ 4 ];
extern unsigned int CAN_Msg_Tx_Enable;
extern uint8_t loc_Type_back;
extern uint8_t LED_Waring ;
//extern uint8_t LED_Waring ;
void SET_IPK_NONE(void);
void Clear_IPK_NONE(void);
......
......@@ -31,23 +31,25 @@ void Can_Init(void)
{
CAN_Frame_st_t stCANFrame;
RSCAN0_Config_st_t loc_can = {0};
loc_can.stRSCANCh2.u32RSCANChEn = 0U;
loc_can.stRSCANCh2.enRSCANChBps = RSCAN_Baud_Rate_250K;
loc_can.stRSCANCh2.u32RSCANChRuleSize = CANFD0_CH2_RX_RULE_SIZE;
loc_can.stRSCANCh2.pfnRSCANConfirmCallBack = Can_Confirm;
loc_can.stRSCANCh2.pfnRSCANReadMsgCallBack = Can_Read_Msg;
loc_can.stRSCANCh2.pfnRSCANAbortConfirmCallBack = 0;
// loc_can.stRSCANCh2.u32RSCANChEn = 0U;
// loc_can.stRSCANCh2.enRSCANChBps = RSCAN_Baud_Rate_250K;
// loc_can.stRSCANCh2.u32RSCANChRuleSize = CANFD0_CH2_RX_RULE_SIZE;
// loc_can.stRSCANCh2.pfnRSCANConfirmCallBack = Can_Confirm;
// loc_can.stRSCANCh2.pfnRSCANReadMsgCallBack = Can_Read_Msg;
// loc_can.stRSCANCh2.pfnRSCANAbortConfirmCallBack = 0;
loc_can.stRSCANCh4.u32RSCANChEn = 1U;
loc_can.stRSCANCh4.enRSCANChBps = RSCAN_Baud_Rate_250K;
loc_can.stRSCANCh4.enRSCANChBps = RSCAN_Baud_Rate_500K;
loc_can.stRSCANCh4.u32RSCANChRuleSize = CANFD0_CH4_RX_RULE_SIZE;
loc_can.stRSCANCh4.pfnRSCANConfirmCallBack = Can_Confirm;
loc_can.stRSCANCh4.pfnRSCANReadMsgCallBack = Can_Read_Msg;
loc_can.stRSCANCh4.pfnRSCANAbortConfirmCallBack = 0;
CAN_RST = 0;
RSCAN0_CH_Init(CANFD_RX_RULE_TABLE_LIST, &loc_can);
CAN_TX_SetEnable(0x55);
// stCANFrame.u32CANID=0x666;
// stCANFrame.u8CANFrameIDE=0;
// stCANFrame.u8CANLEN=8;
......@@ -96,7 +98,8 @@ uint8_t Can_Write(_CAN_Msg *Msg)
uint32_t idx;
m_msg.u32CANID = Msg->MsgID;
m_msg.u8CANLEN = Msg->MsgDLC;
m_msg.u8CANFrameIDE = 1;
m_msg.u8CANFrameIDE = 0;
m_msg.u8CANFrameType = 0;
for ( i = 0; i < m_msg.u8CANLEN; i++ )
{
m_msg.unCANData.u8CANData [ i ] = Msg->Msg [ i ];
......@@ -117,7 +120,8 @@ uint8_t Can_Write_FIFO(_CAN_Msg *Msg)
uint32_t idx;
m_msg.u32CANID = Msg->MsgID;
m_msg.u8CANLEN = Msg->MsgDLC;
m_msg.u8CANFrameIDE = 1;
m_msg.u8CANFrameIDE = 0;
m_msg.u8CANFrameType = 0;
for ( i = 0; i < m_msg.u8CANLEN; i++ )
{
m_msg.unCANData.u8CANData [ i ] = Msg->Msg [ i ];
......@@ -154,7 +158,8 @@ void Can_Abort_All(void)
/*****Lower*******/
void Can_Read_Msg(uint32_t m_id, uint8_t m_dlc, uint8_t m_Msg [])
{
Co_Can_Buff_Set(Co_Can_ConvertSubID(m_id), m_dlc, m_Msg);
Co_Can_Buff_Set(&CAN_CH4_CanMsgOp, Co_Can_ConvertSubID_CAN_CH4(m_id),m_dlc, m_Msg);
//UDS_ReceivedMsg(m_id, m_dlc);
if ( (m_id == DIAG_ID_Rx_FUN) || (m_id == DIAG_ID_Rx_PHY) )
{
......@@ -168,37 +173,12 @@ void Can_Confirm(uint32_t Identifier, uint8_t TransferStatus)
MSG_ID = 0ul;
switch ( Identifier )
{
case RSCAN_CHANNEL_BUF_2:
MSG_ID = 0x401ul;
break;
case RSCAN_CHANNEL_BUF_3:
MSG_ID = 0x260ul;
break;
case RSCAN_CHANNEL_BUF_4:
MSG_ID = 0x280ul;
break;
case RSCAN_CHANNEL_BUF_5:
MSG_ID = 0x380ul;
break;
case RSCAN_CHANNEL_BUF_6:
MSG_ID = 0x385ul;
break;
case RSCAN_CHANNEL_BUF_7:
MSG_ID = 0x69bul;
break;
case RSCAN_CHANNEL_BUF_8:
MSG_ID = 0x28Aul;
break;
case RSCAN_CHANNEL_BUF_1:
MSG_ID = DIAG_ID_Tx;
break;
case RSCAN_CHANNEL_BUF_0:
MSG_ID = DIAG_ID_Tx;
DoCAN_L_Data_Confirm(MSG_ID, TransferStatus);
break;
default:
break;
}
......
......@@ -149,6 +149,14 @@ void RTE_GPIO_Init(void)
gpio_temp.enGPIODir = GPIO_DIR_IN;
gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1;
GPIO_Config(&gpio_temp);
gpio_temp.enGPIOPort = GPIO_PORT_GROUP_0;
gpio_temp.enGPIOPIN = GPIO_PIN_4;
gpio_temp.enGPIOMode = GPIO_MODE_PORT;
gpio_temp.enGPIODir = GPIO_DIR_OUT;
gpio_temp.enGPIOAltFun = GPIO_ALTER_FUN_1;
GPIO_Config(&gpio_temp);
queren = 0;
LINE_OUT_POS_06 = 0;
LINE_OUT_POS_07 = 0;
......
......@@ -24,12 +24,12 @@
#define SW1 GPIO_IN_APORT00_PIN00
#define SW2 GPIO_IN_PORT10_PIN05
#define SW3 GPIO_IN_APORT00_PIN01
#define SW4 GPIO_IN_APORT00_PIN02 //按键-
#define SW5 GPIO_IN_APORT00_PIN03 //按键+
#define SW4 GPIO_IN_APORT00_PIN02
#define SW5 GPIO_IN_APORT00_PIN03
#define SW6 GPIO_IN_APORT00_PIN04
#define SW7 GPIO_IN_APORT00_PIN05
#define SW8 GPIO_IN_APORT00_PIN06 //右转
#define SW8 GPIO_IN_APORT00_PIN06
#define SW9 GPIO_IN_PORT09_PIN00
#define SW10 GPIO_IN_PORT10_PIN06
......@@ -57,7 +57,7 @@
#define SD_FMQ GPIO_OUT_PORT10_PIN02
// #define PWM_FMQ GPIO_OUT_PORT10_PIN06
#define CAN_RST GPIO_OUT_PORT00_PIN04
#define NEG_1_Ctrl GPIO_OUT_PORT09_PIN06
#define NEG_2_Ctrl GPIO_OUT_PORT09_PIN05
......
#ifndef TYWTYPES_H
#define TYWTYPES_H
#ifndef Platform_RH850
#define Platform_RH850
#define Platform_RH850
#endif
/*
变量长度(byte) XHY 324 3360 rh850 SAMC21
......@@ -382,7 +381,29 @@ typedef long int32_t;
#define NVM_RelaxRemind_4H 2u
typedef enum
{
CAN_MSG_TX_CYCLE = 0u,
CAN_MSG_TX_CYCKE_EVENT,
} CAN_TX_Type_t;
typedef enum
{
MSG_STD = 0u,
MSG_EXT,
} CAN_MSG_FORMAT_t;
typedef enum
{
CAN_FRAME_CAN = 0u,
CAN_FRAME_CANFD,
} CAN_FRAME_TYPE_t;
typedef enum
{
CAN_Intel = 0u,
CAN_Motorola,
} CAN_MSG_Endian_t;
#endif
......@@ -112,7 +112,11 @@ typedef struct
CAN_Data_un_t unCANData;
uint32_t u32CANID;
uint8_t u8CANLEN;
uint8_t u8CANFrameIDE; /*0: Standard ID . 1: Extended ID */
uint8_t u8CANFrameIDE; /*0: Standard ID . 1: Extended ID */
uint8_t u8CANFrameType; /*0: CAN 1: CANFD */
uint8_t u8CANReserved1;
uint8_t u8CANReserved2;
uint8_t u8CANReserved3;
} CAN_Frame_st_t;
......
......@@ -73,8 +73,11 @@ void Sys_Startup_Init(void)
GPIO_SET_KEPP( );
RTE_ADC_Init( );
// COM_CAN_Init( );
// Can_Init( );
CAN_RST = 1;
Can_Init();
COM_CAN_Init( );
enable_interrupt( );
Sys_Tick_Timer_Start( );
TFT_LCD_Startup( );
......@@ -113,7 +116,7 @@ void Sys_Startup_Init(void)
// UART_Init(UART_RLIN32, &loc_config);
Display_TFT_Clear();
GUI_Display_Version_Code_Service(25, 20, "Please Scan The Code ", Letter_Num_11, PCodeText_Space_size);
//GUI_Display_Version_Code_Service(25, 20, "Please Scan The Code ", Letter_Num_11, PCodeText_Space_size);
/*上电扫码校验功能如果需要扫码校验注释掉firstpowerflag = 2,打开上面两行的注释即可*/
// firstpowerflag = 2;
......
......@@ -5,6 +5,7 @@
#include "init.h"
#include "Task_Scheduler.h"
#include "RTE_WDT.h"
#include "COM_CAN.h"
static void Sys_Task_Init(void);
......
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