/************************************************************************ Project: Washing Machine Drive Filename: classB.h Partner Filename: N/A Description: Partner file of main.c Complier: IAR Embedded Workbench for ARM 7.80, IAR Systems. CPU TYPE : ST32F0xx ************************************************************************* Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): WLBDM_M0_SR_20170814-new FSM1.1, by cyf, create this file; ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #ifndef CAN_H #define CAN_H /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _CAN_C_ #define CAN_EXT #else #define CAN_EXT extern #endif #include "typedefine.h" #include "ti_msp_dl_config.h" /************************************************************************ Definitions & Macros *************************************************************************/ #define CAN_MC_ALARMCODE_DEFAULT \ { \ 0x00000000 \ } // 天腾 #define ID_MC_BC 0x710 #define ID_MC_TO_BMS 0x712 #define ID_MC_TO_PBU 0x713 #define ID_MC_TO_HMI 0x714 #define ID_MC_TO_CDL 0x715 #define ID_BMS_BC 0x720 #define ID_BMS_TO_MC 0x721 #define ID_BMS_TO_PBU 0x723 #define ID_BMS_TO_HMI 0x724 #define ID_BMS_TO_CDL 0x725 #define ID_PBU_BC 0x730 #define ID_PBU_TO_MC 0x731 #define ID_PBU_TO_BMS 0x732 #define ID_PBU_TO_CDL 0x735 #define ID_HMI_BC 0x740 #define ID_HMI_TO_MC 0x741 #define ID_HMI_TO_BMS 0x742 #define ID_HMI_TO_PBU 0x743 #define ID_HMI_TO_CDL 0x745 #define ID_CDL_BC 0x750 #define ID_CDL_TO_MC 0x751 #define ID_CDL_TO_BMS 0x752 #define ID_CDL_TO_PBU 0x753 #define ID_CDL_TO_HMI 0x754 #define ID_TO_MC_FILTER (UWORD)0x701 #define ID_TO_MC_MASK (UWORD)0x70F #define ID_BC_FILTER (UWORD)0x700 #define ID_BC_MASK (UWORD)0x70F #define FRAME_BEGIN1 0x55 #define FRAME_BEGIN2 0xAA #define FRAME_END 0xF0 #define MODE_READ 0x11 #define MODE_WRITE 0x16 #define MODE_REPORT 0x0C #define ID_MODE_STANDARD (0x0U) #define ID_MODE_EXTENDED (0x1U) /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ // 天腾 typedef struct { ULONG ulBufID; // ID UBYTE ucBufSize; //缓冲区数组:缓冲区大小 UBYTE ucBufWrInde; //缓冲区数组:写索引 UBYTE ucBufRdInde; //缓冲区数组:读索引 UBYTE ucBufCnt; //缓冲区数组:数据计数 UBYTE ucBufOvf; //缓冲区数组:溢出标志,注意清零 UBYTE *pcBufAddr; //缓冲区数组:首地址指针变量 ULONG DelayTimeCnt; //超时计时 BOOL IsWaitRX_Flag; //超时等待数据标志 } CAN_Buf_TypeDef; /************************************************************************ Exported Variables *************************************************************************/ #ifdef _CAN_C_ CAN_EXT DL_MCAN_RxBufElement stRxMessage1; CAN_EXT DL_MCAN_RxBufElement *pRxMsg = &stRxMessage1; CAN_EXT DL_MCAN_TxBufElement stTxMessage1; CAN_EXT DL_MCAN_TxBufElement *pTxMsg = &stTxMessage1; CAN_EXT UBYTE can_ubMbox; CAN_EXT uint8_t CAN_RxBuf_PBU[255]; //用于接收PBU广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_PBU = {0, 255, 0, 0, 0, 0, CAN_RxBuf_PBU, 0, FALSE}; CAN_EXT uint8_t CAN_RxBuf_BMS[255]; //用于接收BMS广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_BMS = {0, 255, 0, 0, 0, 0, CAN_RxBuf_BMS, 0, FALSE}; CAN_EXT uint8_t CAN_RxBuf_HMI[255]; //用于接收HMI广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_HMI = {0, 255, 0, 0, 0, 0, CAN_RxBuf_HMI, 0, FALSE}; CAN_EXT uint8_t CAN_RxBuf_CDL[255]; //用于接收CDL广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_CDL = {0, 255, 0, 0, 0, 0, CAN_RxBuf_CDL, 0, FALSE}; #else CAN_EXT DL_MCAN_RxBufElement stRxMessage1; CAN_EXT DL_MCAN_RxBufElement *pRxMsg; CAN_EXT DL_MCAN_TxBufElement stTxMessage1; CAN_EXT DL_MCAN_TxBufElement *pTxMsg; CAN_EXT UBYTE can_ubMbox; CAN_EXT uint8_t CAN_RxBuf_PBU[255]; //用于接收PBU广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_PBU; CAN_EXT uint8_t CAN_RxBuf_BMS[255]; //用于接收BMS广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_BMS; CAN_EXT uint8_t CAN_RxBuf_HMI[255]; //用于接收HMI广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_HMI; CAN_EXT uint8_t CAN_RxBuf_CDL[255]; //用于接收CDL广播和发送给MC的数据 CAN_EXT CAN_Buf_TypeDef CAN_RxBuf_Struct_CDL; #endif /************************************************************************ RAM ALLOCATION (N/A) *************************************************************************/ /************************************************************************ Exported Function Call Prototypes *************************************************************************/ #ifdef _CAN_C_ CAN_EXT void CAN_Rx_ISR(CAN_Buf_TypeDef *ptCANRx, uint8_t ucLength); CAN_EXT void CAN_SendData(uint32_t ID, uint32_t ID_mode, uint8_t *Data, uint16_t Length); CAN_EXT uint8_t CAN_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void CAN_DelChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void CAN_RxData_Process(CAN_Buf_TypeDef *ptCANRx, uint16_t TimeOutCnt); CAN_EXT void CanRx_Process(void); CAN_EXT uint32_t CRC32_Calculate(uint8_t *pData, uint16_t Length); #else CAN_EXT void CAN_Rx_ISR(CAN_Buf_TypeDef *ptCANRx, uint8_t ucLength); CAN_EXT void CAN_SendData(uint32_t ID, uint32_t ID_mode, uint8_t *Data, uint16_t Length); CAN_EXT uint8_t CAN_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void CAN_DelChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void CAN_RxData_Process(CAN_Buf_TypeDef *ptCANRx, uint16_t TimeOutCnt); CAN_EXT void CanRx_Process(void); CAN_EXT uint32_t CRC32_Calculate(uint8_t *pData, uint16_t Length); #endif void Can_voInitMC_Run(); /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2017 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/