diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_differential_drive.c b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_differential_drive.c index 5fe3c14..a70823a 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_differential_drive.c +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_differential_drive.c @@ -836,8 +836,6 @@ void diffParametersInit(void *signal_id) diff_data.diff_dead_zone = (float)getParam("diff_sp");//参数读取设定最大扭矩 } - - diff_data.min_Torq = (uint16_t)getParam("minTorq");//参数读取设定最大扭矩 diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.c b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.c index 6a13c36..5944892 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.c +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.c @@ -336,9 +336,11 @@ void bmsProcess(void *signal_id)//读取电压 { (void)signal_id; - power_data.high_battery_voltage = (float)un_bms_input.bit_data.bus_voltage / 100.0; - power_data.low_battery_voltage = (float)un_bms_input.bit_data.low_voltage / 100.0; - + power_data.high_battery_voltage = (float)SWAP_ENDIAN_16(un_bms_input.bit_data.bus_voltage) / 100.0; + power_data.low_battery_voltage = (float)SWAP_ENDIAN_16(un_bms_input.bit_data.low_voltage) / 100.0; + + printf("high_vol = %f, low_vol = %f\n", power_data.high_battery_voltage, power_data.low_battery_voltage); + } diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.h b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.h index 30a933e..f29b848 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.h +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/app/app_power.h @@ -10,6 +10,10 @@ extern "C" { #include "app_frm_signal.h" #include "app_frm_timer.h" +#define SWAP_ENDIAN_16(x) ((((x) & 0xFF) << 8) | (((x) >> 8) & 0xFF)) +#define SWAP_ENDIAN_32(x) (((x) << 24) | (((x) & 0xFF00) << 8) | (((x) >> 8) & 0xFF00) | ((x) >> 24)) + + // 定义电源状态枚举 typedef enum { POWER_STANDBY, diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/interface.h b/boards/e3_176_ref/app_demo/eth-xip/sf/interface.h index 33caa35..4d63c40 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/interface.h +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/interface.h @@ -126,10 +126,10 @@ typedef struct _StrBmsInput { //----接收0x301---------------------------------- // 多字节数据,高位在前,低位在后 - uint16_t bus_voltage ; // 母线电压 单位为0.01V - uint16_t low_voltage ; // 母线电流 单位为0.01V - uint16_t channel3 ; // 保留通道 - uint16_t crc1 ; // + uint16_t low_voltage ; // 电池电压 单位为0.01V + uint16_t chanel1 ; // + uint16_t bus_voltage ; // 母线 单位为0.01V + uint16_t chanel2 ; // } StrBmsInput; typedef union _UnBmsInput diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.c b/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.c index 089874f..99f33bb 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.c +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.c @@ -385,8 +385,8 @@ void flexcan_Receive_callback_3(flexcan_handle_t *handle, flexcan_status_e status, uint32_t result, void *userData) { - flexcan_frame_t *buf = (flexcan_frame_t *)userData; - uint8_t i = 0; +// flexcan_frame_t *buf = (flexcan_frame_t *)userData; +// uint8_t i = 0; //-------------------------------------------------------------- switch (status) { @@ -395,30 +395,30 @@ void flexcan_Receive_callback_3(flexcan_handle_t *handle, case FLEXCAN_RX_FIFO_IDLE: - if(BMS_INPUT_ID1 == (buf->id))//BMS - { - can_fault_info.bit_data.bms_count ++; - for(i = 0; i < (buf->length); i++) - { - un_bms_input.arr[i] = buf->dataBuffer[i]; - } - publishMessage(&un_bms_input, 1); - } - else if(BMS_INPUT_ID2 == (buf->id))//BMS - { - for(i = 0; i < (buf->length); i++) - { - un_bms_input.arr[i+8] = buf->dataBuffer[i]; - } - //ź - publishMessage(&un_bms_input, 1); - } +// if(BMS_INPUT_ID1 == (buf->id))//BMS +// { +// can_fault_info.bit_data.bms_count ++; +// for(i = 0; i < (buf->length); i++) +// { +// un_bms_input.arr[i] = buf->dataBuffer[i]; +// } +// publishMessage(&un_bms_input, 1); +// } +// else if(BMS_INPUT_ID2 == (buf->id))//BMS +// { +// for(i = 0; i < (buf->length); i++) +// { +// un_bms_input.arr[i+8] = buf->dataBuffer[i]; +// } +// //ź +// publishMessage(&un_bms_input, 1); +// } // else if(0x701 == (buf->id))//תϵᷢһ֡0x701 // { // un_sdo_output6.bit_data.cmd = 1; // publishMessage(&un_sdo_output6, 1); // } - else{} +// else{} break; @@ -560,11 +560,11 @@ void flexcan_Receive_callback_6(flexcan_handle_t *handle, printf("Feed dog flag received %d\n",getCurrentTime()); } } - else if(BMS_INPUT_ID1 == (buf->id))//յιID + else if(BMS_INPUT_ID2 == (buf->id))//յιID { for(i = 0; i < (buf->length); i++) { - un_bms_input.arr[i+8] = buf->dataBuffer[i]; + un_bms_input.arr[i] = buf->dataBuffer[i]; } //ź publishMessage(&un_bms_input, 1); @@ -1179,7 +1179,7 @@ void canSendAll(void *signal_id) CAN_Send_Msg(&can_handle_1, MOTOR_OUTPUT_ID_1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData,CanData, 8, 17);//1 CAN_Send_Msg(&can_handle_2, MOTOR_OUTPUT_ID_2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData,CanData, 8, 17);//1 - CAN_Send_Msg(&can_handle_6, BMS_INPUT_ID1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData,CanData, 8, 17);//BMS + CAN_Send_Msg(&can_handle_6, BMS_OUTPUT_ID1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData,CanData, 8, 17);//BMS } diff --git a/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.h b/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.h index 6f0004b..910ed9c 100644 --- a/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.h +++ b/boards/e3_176_ref/app_demo/eth-xip/sf/interface_can.h @@ -72,8 +72,8 @@ -#define BMS_INPUT_ID1 0x301 -#define BMS_INPUT_ID2 0x101 +#define BMS_OUTPUT_ID1 0x301 +#define BMS_INPUT_ID2 0x302 #define REMOTE_ID 0x12000023 //#define TEMP_MODULE_INPUT_ID_1 0x301 #define TEMP_MODULE_INPUT_ID_1 0x15000003