update 3.1

This commit is contained in:
2025-07-22 22:26:10 +08:00
parent 6e407c8c88
commit e7ca42e6e9
6 changed files with 12 additions and 42 deletions

View File

@@ -137,6 +137,8 @@ int main(void)
//--------------------------------------------------
//浅蓝闪烁 表示电池电压异常
//--------------------------------------------------
//绿色与蓝色交替闪烁 表示电调串口接收到数据,但不是发给本电调的
//--------------------------------------------------
ESHL_ESC_Init();

View File

@@ -278,15 +278,15 @@ void ESHL_Start(ESHL_DIRECTION_ENUM_T direction)
while (1)
{
for (uint16_t i = 0; i < time; ++i) {
delay_us(&ESHL_US_TIM,80);
delay_us(&ESHL_US_TIM,55);
}
if (time < 25)
if (time < 20)
{
time = 100;
MOS_CloseAll();
if ((BMEF_num >= 30) && (BMEF_num <= 35))//开环启动成功
if ((BMEF_num >= 18) && (BMEF_num <= 35))//开环启动成功
{
HAL_COMP_Stop(&ESHL_COMP);
HAL_COMP_Start_IT(&ESHL_COMP);

View File

@@ -22,39 +22,7 @@
0XC2:关闭电调,电调数据0XD0表示电调成功关闭,主机不发送数据,填0,uint8_t,类型,1字节
0XC3:启动电调,数据0XA1表示顺时针启动,0XA2表示逆时针启动,uint8_t类型,1字节
0XC4:电调刹车,电调数据0XA3表示刹车完毕,主机不发送数据,填0,uint8_t,类型,1字节
0XC5:更改电调运行电流限制ADC值,uint16_t类型
0XC6:电调异常,表示数据包传输电调异常代码uint8_t类型1字节
0XC7:更改电调地址,主机用广播地址发送此命令,更改地址时,所有已连接的电调地址都需要重新设置
地址设置方法: 快速旋转已经连接上电调的电机,此时电调将自动将自身地址设为EC00
同时电调状态指示灯会闪烁,闪烁次数代表电调地址
此时旋转第二个电调的电机,此时电调将自动将自身地址设为EC01,以此类推,直到所有电调地址设置完毕
电调设置地址后需要重新上电才能使用
设置地址主机不发送数据,电调广播自身地址表示该地址已被占用
电调异常代码:
0XE0:MOS异常
0XE1:电流异常
0XE2:电调开环启动达到最大重启次数,开环启动失败
0XE3:电机运行过程中意外停转
0XE4:电池电压异常*//*电调在通信过程中始终作为从机
构成:
帧头[0]+电调地址[1]+数据包长[3]+命令码[4]+数据[5]+整包CRC16校验码
帧头:
主机→电调: 0XEC
电调→主机: 0XCE
地址:
默认 EC00(可更改)
广播地址 AAAA
命令码:
0XC1:油门命令,表示数据包传输油门百分比,float类型4字节
0XC2:关闭电调,电调数据0XD0表示电调成功关闭,主机不发送数据,填0,uint8_t,类型,1字节
0XC3:启动电调,数据0XA1表示顺时针启动,0XA2表示逆时针启动,uint8_t类型,1字节
0XC4:电调刹车,电调数据0XA3表示刹车完毕,主机不发送数据,填0,uint8_t,类型,1字节
0XC5:更改电调运行电流限制ADC值,uint16_t类型
0XC5:更改电调运行电流限制ADC值,uint16_t类型,电调回复0xAA表示更改成功
0XC6:电调异常,表示数据包传输电调异常代码uint8_t类型1字节
0XC7:更改电调地址,主机用广播地址发送此命令,更改地址时,所有已连接的电调地址都需要重新设置
地址设置方法: 快速旋转已经连接上电调的电机,此时电调将自动将自身地址设为EC00

View File

@@ -21,7 +21,7 @@
0XC2:关闭电调,电调数据0XD0表示电调成功关闭,主机不发送数据,填0,uint8_t,类型,1字节
0XC3:启动电调,数据0XA1表示顺时针启动,0XA2表示逆时针启动,uint8_t类型,1字节
0XC4:电调刹车,电调数据0XA3表示刹车完毕,主机不发送数据,填0,uint8_t,类型,1字节
0XC5:更改电调运行电流限制ADC值,uint16_t类型
0XC5:更改电调运行电流限制ADC值,uint16_t类型,电调回复0xAA表示更改成功
0XC6:电调异常,表示数据包传输电调异常代码uint8_t类型1字节
0XC7:更改电调地址,主机用广播地址发送此命令,更改地址时,所有已连接的电调地址都需要重新设置
地址设置方法: 快速旋转已经连接上电调的电机,此时电调将自动将自身地址设为EC00

View File

@@ -132,10 +132,10 @@ static void ESHL_CMDProcessing() {
break;
case ESHL_PROTOCOL_CMD_CURRENT_LIMIT://更改电调运行电流限制ADC值
ESHL_ChangeRuningCurrentLimit(recv_str.current_limit);
// if (state == ESHL_STATE_SET_HOST_TIMEOUT) {//退出超时
// ESHL_SetState(EShl_STATE_READY);
// }
if ((state == ESHL_STATE_OFF) || (state == EShl_STATE_READY) || (state == ESHL_STATE_SET_HOST_TIMEOUT)) {//电调非运动状态才能修改电流限制
ESHL_ChangeRuningCurrentLimit(recv_str.current_limit);
ESHL_CommunicationSendCode(ESHL_PROTOCOL_CMD_CURRENT_LIMIT,0xAA);
}
break;
case ESHL_PROTOCOL_CMD_CHANGE_ADDR: //更改电调地址

View File

@@ -13,7 +13,7 @@
#define ESHL_TX_PACK_LEN 20 //电调发送缓存大小
#define ESHL_DATA_PACK_MAX_LEN 11 //电调数据包最大长度
#define ESHL_HOST_TIMEOUT 1500 //主机离线时间(ms)阈值,超过此值视为主机离线
#define ESHL_HOST_TIMEOUT 1200 //主机离线时间(ms)阈值,超过此值视为主机离线
void ESHL_CommunicationStart();