motors
上游未提供说明。
motors/VESC/vesc.cpp:150.1.0+d8ebbce805b230 / 74 个公开 API 符号没有说明。
上游未提供说明。
motors/VESC/vesc.cpp:15VESC 电调对象 电流控制 内部速度控制 常见状态反馈解析 当前封装重点覆盖: 角度反馈 速度反馈 电流输入 内部速度输入 从能力模型上看,VESC 这一路主要提供: 当前 VESC 实现里,速度接口单位为 rpm。
motors/VESC/vesc.hpp:36上游未提供说明。
motors/VESC/vesc.cpp:19VESC 配置结构体 对应 VESC_Config_t.
motors/VESC/vesc.hpp:121
void VESC_CAN_Fifo0ReceiveCallback (CAN_HandleTypeDef *hcan)
VESC FIFO0 中断回调包装 CANBaseReceiveCallback() 如果项目没有统一 CAN 分发器,可以直接使用这个 HAL 包装;否则更推荐统一把报文分发到。
motors/VESC/vesc.hpp:280
void VESC_CAN_Fifo1ReceiveCallback (CAN_HandleTypeDef *hcan)
VESC FIFO1 中断回调包装 CANBaseReceiveCallback() 如果项目没有统一 CAN 分发器,可以直接使用这个 HAL 包装;否则更推荐统一把报文分发到。
motors/VESC/vesc.hpp:287
void motors::VESCMotor::CANBaseReceiveCallback (const CAN_HandleTypeDef *hcan, const CAN_RxHeaderTypeDef *header, const uint8_t *data)
CAN 基础接收回调 hcan CAN 句柄 header CAN 报文头 data 数据 如果项目里已经有统一 CAN 分发器,推荐把它注册到分发器中;否则也可以在 HAL 的 FIFO 回调里直接调用它。
motors/VESC/vesc.hpp:199
void motors::VESCMotor::CAN_FilterInit (CAN_HandleTypeDef *hcan, uint32_t filter_bank)
是否支持内部位置控制 协议本身存在位置设定命令,但当前这个类没有把它作为稳定接口对外开放。 不重写 internalPositionSupportLevel(),继承基类默认 NotSupported。 hcan CAN 句柄 filter_bank 滤波器组 初始化 CAN 滤波器
motors/VESC/vesc.hpp:189
motors::VESCMotor::VESCMotor (const Config &cfg)
上游未提供说明。
motors/VESC/vesc.hpp:140
float motors::VESCMotor::clamp (float value, float abs_max)
限幅 value 输入值 abs_max 最大绝对值 限幅后的值
motors/VESC/vesc.hpp:261
void motors::VESCMotor::decode (StatusCommand status_cmd, const uint8_t data[8])
解码状态反馈 status_cmd 状态指令 data 数据
motors/VESC/vesc.hpp:253
controllers::ControlMode motors::VESCMotor::defaultControlMode () const override
上游未提供说明。
motors/VESC/vesc.hpp:155
float motors::VESCMotor::getAngle () const override
获取输出轴角度 角度,单位 deg
motors/VESC/vesc.hpp:147
float motors::VESCMotor::getVelocity () const override
获取输出轴速度 速度;当前 VESC 实现单位为 rpm
motors/VESC/vesc.hpp:152
InternalVelocitySupportLevel motors::VESCMotor::internalVelocitySupportLevel () const override
上游未提供说明。
motors/VESC/vesc.hpp:165
bool motors::VESCMotor::isConnected () const override
上游未提供说明。
motors/VESC/vesc.hpp:160
void motors::VESCMotor::resetAngle () override
上游未提供说明。
motors/VESC/vesc.hpp:153
void motors::VESCMotor::sendSetCommand (SetCommand cmd, float value) const
发送设置指令 cmd 指令 value 值
motors/VESC/vesc.hpp:267
void motors::VESCMotor::setCurrent (float current) override
上游未提供说明。
motors/VESC/vesc.hpp:163
void motors::VESCMotor::setInternalVelocity (float rpm, float maxi) override
发送内部速度参考 VESC 内部速度模式不支持 maxi,该参数被忽略。
motors/VESC/vesc.hpp:174
bool motors::VESCMotor::supportsCurrent () const override
上游未提供说明。
motors/VESC/vesc.hpp:162
motors::VESCMotor::~VESCMotor () override
上游未提供说明。
motors/VESC/vesc.hpp:141
void motors::VESC_CAN_Fifo0ReceiveCallback (CAN_HandleTypeDef *hcan)
上游未提供说明。
motors/VESC/vesc.cpp:290
void motors::VESC_CAN_Fifo1ReceiveCallback (CAN_HandleTypeDef *hcan)
上游未提供说明。
motors/VESC/vesc.cpp:306
static int16_t motors::be_to_i16 (const uint8_t *bytes)
上游未提供说明。
motors/VESC/vesc.cpp:81
static int32_t motors::be_to_i32 (const uint8_t *bytes)
上游未提供说明。
motors/VESC/vesc.cpp:74
static FeedbackMap * motors::find_map (const CAN_HandleTypeDef *hcan)
上游未提供说明。
motors/VESC/vesc.cpp:27
static bool motors::register_motor (CAN_HandleTypeDef *hcan, const size_t id, VESCMotor *motor)
上游未提供说明。
motors/VESC/vesc.cpp:37
static bool motors::unregister_motor (CAN_HandleTypeDef *hcan, const size_t id)
上游未提供说明。
motors/VESC/vesc.cpp:61VESC CAN 指令集(设置类) 对应 VESC_CAN_PocketSet_t.
SetCurrent = 1USetCurrentBrake = 2USetCurrentBrakeRel = 11USetCurrentRel = 10USetDuty = 0USetPosition = 4USetRPM = 3UVESC CAN 状态反馈指令集 对应 VESC_CAN_PocketStatus_t. 下面各状态包的字段说明,按“当前公开资料 + 本项目解码实现”整理。 如果注释里写了“推测”,表示该字段含义或物理单位在当前资料下并非完全确认。
VESC_CAN_STATUS_1 = 9UVESC_CAN_STATUS_2 = 14UVESC_CAN_STATUS_3 = 15UVESC_CAN_STATUS_4 = 16UVESC_CAN_STATUS_5 = 27U
CAN_HandleTypeDef* motors::FeedbackMap::hcan
上游未提供说明。
motors/VESC/vesc.cpp:21
FixedPointerMap<size_t, VESCMotor, MOTORS_VESC_MAX_NUM> motors::FeedbackMap::motors
上游未提供说明。
motors/VESC/vesc.cpp:22
bool motors::VESCMotor::Config::auto_zero
上电收够一段稳定反馈后,是否自动把当前角度设为零点
motors/VESC/vesc.hpp:136
uint8_t motors::VESCMotor::Config::electrodes
电机极对数,用于机械 rpm 与 ERPM 的换算。 注意这里填写的是“极对数”,不是总极数。 例如 14 极电机,这里应填写 7。 electrodes 字段名沿用历史命名,当前不改动接口以兼容现有代码。
motors/VESC/vesc.hpp:133
CAN_HandleTypeDef* motors::VESCMotor::Config::hcan
所在 CAN 总线
motors/VESC/vesc.hpp:123
uint8_t motors::VESCMotor::Config::id
控制器 id,0xFF 代表广播
motors/VESC/vesc.hpp:124
float motors::VESCMotor::Config::reduction_rate
外接减速比(VESC 上位机设置的减速比不生效)
motors/VESC/vesc.hpp:134
bool motors::VESCMotor::Config::reverse
是否反转输出方向
motors/VESC/vesc.hpp:137
float motors::VESCMotor::abs_angle_
输出轴绝对角度,单位 deg
motors/VESC/vesc.hpp:245
float motors::VESCMotor::amp_hours
累计放电安时
motors/VESC/vesc.hpp:225
float motors::VESCMotor::amp_hours_charged
累计回充安时
motors/VESC/vesc.hpp:226
float motors::VESCMotor::angle_zero_
零点角度,单位 deg
motors/VESC/vesc.hpp:239
Config motors::VESCMotor::cfg_
构造时保存的配置
motors/VESC/vesc.hpp:213
float motors::VESCMotor::current_in
输入电流,来自状态包 4,单位按 A 推测
motors/VESC/vesc.hpp:223
float motors::VESCMotor::current_motor
电机电流,来自状态包 1
motors/VESC/vesc.hpp:222
float motors::VESCMotor::duty
占空比,来自状态包 1
motors/VESC/vesc.hpp:221
float motors::VESCMotor::erpm
电角转速 ERPM,来自状态包 1
motors/VESC/vesc.hpp:219
float motors::VESCMotor::erpm2velocity_
ERPM 到输出轴机械 rpm 的换算系数
motors/VESC/vesc.hpp:242
struct motors::VESCMotor::@223340151256342242217002162075325224265227245202 motors::VESCMotor::feedback_
上游未提供说明。
motors/VESC/vesc.hpp:237
uint32_t motors::VESCMotor::feedback_count_
反馈计数,用于上电自动清零
motors/VESC/vesc.hpp:215
float motors::VESCMotor::inv_reduction_rate_
外接减速比倒数
motors/VESC/vesc.hpp:243
float motors::VESCMotor::kSetCurrentBrakeMax
上游未提供说明。
motors/VESC/vesc.hpp:207
float motors::VESCMotor::kSetCurrentBrakeRelMax
上游未提供说明。
motors/VESC/vesc.hpp:211
float motors::VESCMotor::kSetCurrentMax
上游未提供说明。
motors/VESC/vesc.hpp:206
float motors::VESCMotor::kSetCurrentRelMax
上游未提供说明。
motors/VESC/vesc.hpp:210
float motors::VESCMotor::kSetDutyMax
上游未提供说明。
motors/VESC/vesc.hpp:205
float motors::VESCMotor::kSetPositionMax
上游未提供说明。
motors/VESC/vesc.hpp:209
float motors::VESCMotor::kSetRPMMax
上游未提供说明。
motors/VESC/vesc.hpp:208
float motors::VESCMotor::mos_temperature
MOSFET 温度,来自状态包 4,单位按 degC 推测
motors/VESC/vesc.hpp:231
float motors::VESCMotor::motor_temperature
电机温度,来自状态包 4,单位按 degC 推测
motors/VESC/vesc.hpp:230
float motors::VESCMotor::pos
单圈位置,当前项目按 0~360 deg 使用,来自状态包 4
motors/VESC/vesc.hpp:220
int32_t motors::VESCMotor::round_cnt
圈数统计
motors/VESC/vesc.hpp:236
float motors::VESCMotor::sign_
方向符号,正转为 1,反转为 -1
motors/VESC/vesc.hpp:241
float motors::VESCMotor::tachometer_value
原始转速计值,来自状态包 5,精确物理含义仍待确认
motors/VESC/vesc.hpp:234
float motors::VESCMotor::velocity_
输出轴角速度,当前实现单位 rpm
motors/VESC/vesc.hpp:246
float motors::VESCMotor::vin
输入电压
motors/VESC/vesc.hpp:233
service::Watchdog motors::VESCMotor::watchdog_
上游未提供说明。
motors/VESC/vesc.hpp:216
float motors::VESCMotor::watt_hours
累计放电瓦时
motors/VESC/vesc.hpp:227
float motors::VESCMotor::watt_hours_charged
累计回充瓦时
motors/VESC/vesc.hpp:228
std::array<FeedbackMap, CAN_NUM> motors::map
上游未提供说明。
motors/VESC/vesc.cpp:25上游未提供说明。
motors/VESC/vesc.hpp:14VESC 电机驱动实现 syhanjin 2026-03-06
motors/VESC/vesc.cppVESC 电机驱动封装 syhanjin 2026-03-06
motors/VESC/vesc.hpp