From 9ebf54e0b24c3d1ba2400ba4c0838d1ef6000a16 Mon Sep 17 00:00:00 2001 From: Xiaocheng <2544262366@qq.com> Date: Sat, 14 Mar 2026 23:28:31 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86CAN=E7=88=86?= =?UTF-8?q?=E7=82=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Src/can.c | 2 +- User/device/supercap.c | 6 +++--- User/module/chassis.c | 2 ++ lll0121.ioc | 3 ++- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Core/Src/can.c b/Core/Src/can.c index fd6e45e..1603a9e 100644 --- a/Core/Src/can.c +++ b/Core/Src/can.c @@ -49,7 +49,7 @@ void MX_CAN1_Init(void) hcan1.Init.AutoWakeUp = DISABLE; hcan1.Init.AutoRetransmission = ENABLE; hcan1.Init.ReceiveFifoLocked = DISABLE; - hcan1.Init.TransmitFifoPriority = DISABLE; + hcan1.Init.TransmitFifoPriority = ENABLE; if (HAL_CAN_Init(&hcan1) != HAL_OK) { Error_Handler(); diff --git a/User/device/supercap.c b/User/device/supercap.c index ef09738..019c62f 100644 --- a/User/device/supercap.c +++ b/User/device/supercap.c @@ -55,7 +55,7 @@ int8_t SuperCap_Init(void) return DEVICE_OK; // 已经初始化过 } - if (BSP_CAN_RegisterId( BSP_CAN_1 , SUPERCAP_RX_ID, 3) != BSP_OK) { + if (BSP_CAN_RegisterId( BSP_CAN_2, SUPERCAP_RX_ID, 3) != BSP_OK) { return DEVICE_ERR; } @@ -72,7 +72,7 @@ int8_t SuperCap_Update(void) BSP_CAN_Message_t rx_msg; // 从CAN队列获取数据 - if (BSP_CAN_GetMessage( BSP_CAN_1 , SUPERCAP_RX_ID, &rx_msg, BSP_CAN_TIMEOUT_IMMEDIATE) == BSP_OK) { + if (BSP_CAN_GetMessage( BSP_CAN_2, SUPERCAP_RX_ID, &rx_msg, BSP_CAN_TIMEOUT_IMMEDIATE) == BSP_OK) { // 处理接收到的数据 transfer_SuperCap_measure(rx_msg.data); return DEVICE_OK; @@ -151,7 +151,7 @@ int8_t CAN_TX_SuperCapData(CAN_SuperCapTXDataTypeDef * TX_Temp) tx_frame.data[6] = 0; tx_frame.data[7] = 0; - return BSP_CAN_TransmitStdDataFrame( BSP_CAN_1 , &tx_frame) == BSP_OK ? DEVICE_OK : DEVICE_ERR; + return BSP_CAN_TransmitStdDataFrame( BSP_CAN_2 , &tx_frame) == BSP_OK ? DEVICE_OK : DEVICE_ERR; } /** diff --git a/User/module/chassis.c b/User/module/chassis.c index 24bcb83..4e6d452 100644 --- a/User/module/chassis.c +++ b/User/module/chassis.c @@ -359,6 +359,7 @@ int8_t Chassis_Control(Chassis_t *c, Chassis_CMD_t *c_cmd,uint32_t now) c->dt = (float)(now - c->last_wakeup) / 1000.0f; /* 计算两次调用的时间间隔,单位秒 */ c->last_wakeup = now; + c->ctrl_mode = c_cmd->ctrl_mode; /*设置底盘模式*/ if (Chassis_SetMode(c, c_cmd->mode,now) != CHASSIS_OK) { @@ -499,5 +500,6 @@ void Chassis_Setoutput(Chassis_t *c) // MOTOR_RM_SetOutput(&(c->param->motor_3508_param[0]), 1.0f); MOTOR_RM_Ctrl(&(c->param->motor_3508_param[0])); MOTOR_RM_Ctrl(&(c->param->motor_6020_param[0])); + // MOTOR_RM_Ctrl(&(c->param->motor_6020_param[3])); } diff --git a/lll0121.ioc b/lll0121.ioc index 670f37e..6a6c9f5 100644 --- a/lll0121.ioc +++ b/lll0121.ioc @@ -7,9 +7,10 @@ CAN1.BS2=CAN_BS2_7TQ CAN1.CalculateBaudRate=1000000 CAN1.CalculateTimeBit=1000 CAN1.CalculateTimeQuantum=71.42857142857143 -CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2,NART +CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2,NART,TXFP CAN1.NART=ENABLE CAN1.Prescaler=3 +CAN1.TXFP=ENABLE CAN2.BS1=CAN_BS1_6TQ CAN2.BS2=CAN_BS2_7TQ CAN2.CalculateBaudRate=1000000