修改解决多个帧头以及错误处理

This commit is contained in:
2025-10-21 21:10:21 +08:00
parent c3f6375140
commit c7bed50170
12 changed files with 247 additions and 2546 deletions

22
User.c
View File

@@ -17,9 +17,6 @@ bit FlgOneTime = 0;
ubyte uart2RxFlag = 0;
uword RgCanPerid = 50;
ubyte can_error_cnt = 0;
ubyte can_error_flg = 0;
//PWM 20181227
ubyte PwmH[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
//-----------------------------------------------------------------------
@@ -52,7 +49,7 @@ SBusData* parseSBusData(const uint8_t *input_data)
sbus_data.channels[10] = (input_data[14] >> 6 | input_data[15] << 2 | input_data[15] << 10) & 0x07FF;
sbus_data.channels[11] = (input_data[16] >> 1 | input_data[17] << 7) & 0x07FF;
sbus_data.channels[12] = (input_data[17] >> 4 | input_data[18] << 4) & 0x07FF;
sbus_data.channels[13] = (input_data[18] >> 7 | input_data[19] << 1 | input_data[20] << 9) & 0x07FF;
sbus_data.channels[13] = (input_data[18] >> 7 | input_data[19] << 1 | input_data[19] << 9) & 0x07FF;
sbus_data.channels[14] = (input_data[20] >> 2 | input_data[21] << 6) & 0x07FF;
sbus_data.channels[15] = (input_data[21] >> 5 | input_data[22] << 3) & 0x07FF;
@@ -355,6 +352,9 @@ void sbusCanDecode(void)
}
//CAN<41><4E><EFBFBD>ͽ<EFBFBD><CDBD><EFBFBD>
void CanRXTX(void)
{
@@ -426,8 +426,8 @@ void CanRXTX(void)
// sbus_temp[1] = 3;
detectLedState(&blink_detector, sbus_temp[0], &sbus_temp[1]);
// UnRemoteControlOutput_2.bit_data.enable = blink_detector.current_state;//
// UnRemoteControlOutput_2.bit_data.reserve1 = sbus_temp[1];
UnRemoteControlOutput_2.bit_data.enable = blink_detector.current_state;//
UnRemoteControlOutput_2.bit_data.reserve1 = sbus_temp[1];
if( (MATCH_CMD == UnInfCan_1.ArrData.ArrRX[0][0]) || (CHANGE_CMD == UnInfCan_1.ArrData.ArrRX[0][0]) )//<2F><>Ƶ<EFBFBD><C6B5><EFBFBD><EFBFBD><EFBFBD>л<EFBFBD>
@@ -480,16 +480,6 @@ void CanRXTX(void)
CanTransmit(DF_SwTx,(ubyte *)&UnRemoteControlOutput_1.arr[0]);
CanTransmit(DF_SwTx1,(ubyte *)&UnRemoteControlOutput_2.arr[0]);
}
if( (0x40 == can_error_cnt) || (0x80 == can_error_cnt) )//20250625<32>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߴ<EFBFBD><DFB4><EFBFBD>
{
can_error_flg = can_error_cnt;
CAN_vInit();
can_error_cnt = 0;
}
}