/************************************************************************ Project: Washing Machine Drive Filename: classB.h Partner Filename: N/A Description: Partner file of main.c Complier: IAR Embedded Workbench for ARM 8.40.2, IAR Systems. CPU TYPE : GD32F30x ************************************************************************* Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* ************************************************************************* Revising History (ECL of this file): ************************************************************************/ /************************************************************************ Beginning of File, do not put anything above here except notes Compiler Directives: *************************************************************************/ #ifndef CAN_H #define CAN_H //#include "typedefine.h" #include /************************************************************************ Compiler Directives (N/A) *************************************************************************/ #ifdef _CAN_C_ #define CAN_EXT #else #define CAN_EXT extern #endif /************************************************************************ 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 (uint16_t)0x701 #define ID_TO_MC_MASK (uint16_t)0x70F #define ID_BC_FILTER (uint16_t)0x700 #define ID_BC_MASK (uint16_t)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 /************************************************************************ TypeDefs & Structure defines (N/A) *************************************************************************/ typedef struct { uint16_t ucBufID; // ID uint8_t ucBufSize; //缓冲区数组:缓冲区大小 uint8_t ucBufWrInde; //缓冲区数组:写索引 uint8_t ucBufRdInde; //缓冲区数组:读索引 uint8_t ucBufCnt; //缓冲区数组:数据计数 uint8_t ucBufOvf; //缓冲区数组:溢出标志,注意清零 uint8_t *pcBufAddr; //缓冲区数组:首地址指针变量 uint32_t DelayTimeCnt; //超时计时 bool IsWaitRX_Flag; //超时等待数据标志 } CAN_Buf_TypeDef; /************************************************************************ Exported Variables *************************************************************************/ #ifdef _CAN_C_ /* GD MCU */ CAN_EXT can_receive_message_struct stRxMessage1; CAN_EXT can_receive_message_struct *pRxMsg = &stRxMessage1; CAN_EXT can_trasnmit_message_struct stTxMessage1; CAN_EXT can_trasnmit_message_struct *pTxMsg = &stTxMessage1; CAN_EXT uint8_t can_ubMbox; #else /* GD MCU */ CAN_EXT can_receive_message_struct stRxMessage1; CAN_EXT can_receive_message_struct *pRxMsg; CAN_EXT can_trasnmit_message_struct stTxMessage1; CAN_EXT can_trasnmit_message_struct *pTxMsg; CAN_EXT uint8_t can_ubMbox; #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 uint8_t cd_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void cd_DelChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); 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(uint16_t ID, uint8_t *Data, uint16_t Length); CAN_EXT void SendData(uint16_t ID, uint8_t Mode, uint16_t Command, uint8_t *Data); CAN_EXT uint8_t cd_ReadChar(CAN_Buf_TypeDef *ptCANRx, uint8_t ucNum); CAN_EXT void cd_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 void DataProcess(uint16_t ID, uint8_t Mode, uint16_t Cmd, uint8_t *Data); CAN_EXT uint32_t CRC32_Calculate(uint8_t *pData, uint16_t Length); #endif void Can_voInitMC_Run(); /************************************************************************ Flag Define (N/A) *************************************************************************/ #endif /************************************************************************ Copyright (c) 2022 Welling Motor Technology(Shanghai) Co. Ltd. All rights reserved. ************************************************************************* End of this File (EOF)! Do not put anything after this part! *************************************************************************/