update 3.1
This commit is contained in:
@@ -137,6 +137,8 @@ int main(void)
|
||||
//--------------------------------------------------
|
||||
//浅蓝闪烁 表示电池电压异常
|
||||
//--------------------------------------------------
|
||||
//绿色与蓝色交替闪烁 表示电调串口接收到数据,但不是发给本电调的
|
||||
//--------------------------------------------------
|
||||
|
||||
ESHL_ESC_Init();
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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: //更改电调地址
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user