typedef union can_ide { unsigned int D32; unsigned char D8[4]; struct{ unsigned int Cmd :8; unsigned int dAddr :7; unsigned int sAddr :7; unsigned int dLvl :3; unsigned int sLvl :2; unsigned int Pri :2; unsigned int Dump :3; }BitF; }can_ide_struct; typedef struct can_def { unsigned int rx_cmd; unsigned char rx_buf[8]; unsigned int rx_len; unsigned int rx_complete; unsigned int tx_cmd; unsigned char tx_buf[8]; unsigned int tx_len; unsigned int tx_complete; unsigned int tx_complete_delay_flag; unsigned int tx_complete_delay_tick; unsigned int tx_err; unsigned int tx_msg_falg; unsigned int tx_tick; unsigned int tx_timer_count; }can_info_struct; extern can_info_struct can_handle; extern void can_prm_init(void); extern void can_send_time_handle(void); extern void can_task(void); extern unsigned int internal_can_send_data(unsigned int head, unsigned char * pdata, unsigned int len); extern unsigned int get_can_tx_complete(void); extern unsigned int get_can_tx_complete_delay_flag(void); extern void can_tx_complete_delay(void);