#ifndef __CToC_H #define __CToC_H #include "main.h" #include "M3508.h" #define CToC_MasterID1 0x019//ID1 #define CToC_SlaveID1 0x149//ID1 #define CToC_SlaveID2 0x189//ID2 //中断回调函数 //判断接受对象的ID-符合条件-完成解码-发送数据包 //motor_chassis:motor_measure_t 类型的数组,其中装有电机转子角度,电机转子转速,控制电流,温度 //定义函数 #define get_motor_measure(ptr, data) \ { \ (ptr)->last_ecd = (ptr)->ecd; \ (ptr)->ecd = (uint16_t)((data)[0] << 8 | (data)[1]); \ (ptr)->speed_rpm = (uint16_t)((data)[2] << 8 | (data)[3]); \ (ptr)->given_current = (uint16_t)((data)[4] << 8 | (data)[5]); \ (ptr)->temperate = (data)[6]; \ } extern uint8_t CToC_SlaveSendRefereeSystemData(void); extern void can_filter_init(void); extern void CToC_CANDataProcess(uint32_t ID,uint8_t *Data); extern void Update_Motor_Measure(uint8_t motor_id, motor_measure_t* measure); extern void HAL_CAN_RxFifo0MsgPendingCallback(CAN_HandleTypeDef *hcan); #endif