解决了CAN爆炸
This commit is contained in:
parent
4453a0a333
commit
9ebf54e0b2
@ -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();
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -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]));
|
||||
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
Reference in New Issue
Block a user