Boen_Shi 8be2866433 feat(base): 初始化 MSPM0 开发环境
- 添加头文件和配置文件支持
- 更新.gitignore忽略编译和IDE相关文件
- 添加基础的bsp代码
2026-07-16 14:45:26 +08:00

46 lines
1.3 KiB
C++

#ifndef STEPMOTOR_H
#define STEPMOTOR_H
#define FRAME_LENGTH 11
#include "ti_msp_dl_config.h"
#include <../../example/2025_include_user/Print.h>
class StepMotor {
public:
typedef enum {
SPEED_MODE = 1,
POSITION_MODE,
TORQUE_MODE,
ABSOLUTE_ANGLE_MODE
} ControlMode;
struct Data {
uint8_t address;
uint8_t flag;
uint16_t speed;
int32_t position;
uint8_t bcc;
};
static void init();
static void inject();
static void setSpeed(uint8_t direction, uint8_t subdivide, float speed_rad_s);
static void setPosition(uint8_t direction, uint8_t subdivide, float angle_deg, float speed_rad_s);
static void setTorque(uint8_t direction, uint8_t subdivide, uint16_t torque_mA, float speed_rad_s);
static void setAbsoluteAngle(uint8_t direction, uint8_t subdivide, float absolute_angle_deg, float speed_rad_s);
static uint16_t getSpeed();
static uint32_t getPosition();
static uint8_t _buffer;
static Data _data;
private:
static void transmit_command(const uint8_t *cmd);
static void encode_frame(ControlMode mode, uint8_t direction, uint8_t subdivide, float angle_deg, uint16_t torque_mA, float absolute_angle_deg, float speed_rad_s, uint8_t *frame_buffer);
};
#endif //STEPMOTOR_H