communication.h 874 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #ifndef _COMMUNICATION_H__
  2. #define _COMMUNICATION_H__
  3. #include "libs/types.h"
  4. typedef enum {
  5. Cmd_Start = 0x1, //start/stop
  6. Cmd_Ready, //ready / unready
  7. Cmd_Hall_Cali,
  8. Cmd_Limit_Speed,
  9. Cmd_Limit_Current,
  10. Cmd_PI_Param
  11. }motor_cmd_t;
  12. #define MY_CAN_ADDR 0x30
  13. #pragma pack (push,1)
  14. typedef struct
  15. {
  16. uint8_t src:7;
  17. uint8_t dir:1; //0->out, 1 ->in,如果发现收到的是0,可能是红外那边自环过来的,需要丢弃
  18. }cmd_head_t;
  19. typedef struct {
  20. cmd_head_t head;
  21. uint8_t key;
  22. uint8_t data[0];
  23. }cmd_frame_t;
  24. #pragma pack(pop)
  25. #pragma pack (push,1)
  26. typedef struct {
  27. u8 start; //0x1=start, 0x00=stop
  28. u16 speed; //目标速度
  29. s16 current;//启动电流
  30. u16 ramp_time;//斜波时间
  31. }cmd_start_t;
  32. typedef struct {
  33. u8 ready; //0x1=ready, 0x00=unready
  34. }cmd_ready_t;
  35. typedef struct {
  36. u8 start;
  37. s16 current;
  38. }cmd_hall_cali_t;
  39. #pragma pack(pop)
  40. #endif /* _COMMUNICATION_H__ */