1.0
This commit is contained in:
@@ -38,7 +38,7 @@ void MX_CAN1_Init(void)
|
|||||||
|
|
||||||
/* USER CODE END CAN1_Init 1 */
|
/* USER CODE END CAN1_Init 1 */
|
||||||
hcan1.Instance = CAN1;
|
hcan1.Instance = CAN1;
|
||||||
hcan1.Init.Prescaler = 4;
|
hcan1.Init.Prescaler = 2;
|
||||||
hcan1.Init.Mode = CAN_MODE_NORMAL;
|
hcan1.Init.Mode = CAN_MODE_NORMAL;
|
||||||
hcan1.Init.SyncJumpWidth = CAN_SJW_2TQ;
|
hcan1.Init.SyncJumpWidth = CAN_SJW_2TQ;
|
||||||
hcan1.Init.TimeSeg1 = CAN_BS1_16TQ;
|
hcan1.Init.TimeSeg1 = CAN_BS1_16TQ;
|
||||||
@@ -46,7 +46,7 @@ void MX_CAN1_Init(void)
|
|||||||
hcan1.Init.TimeTriggeredMode = DISABLE;
|
hcan1.Init.TimeTriggeredMode = DISABLE;
|
||||||
hcan1.Init.AutoBusOff = ENABLE;
|
hcan1.Init.AutoBusOff = ENABLE;
|
||||||
hcan1.Init.AutoWakeUp = DISABLE;
|
hcan1.Init.AutoWakeUp = DISABLE;
|
||||||
hcan1.Init.AutoRetransmission = DISABLE;
|
hcan1.Init.AutoRetransmission = ENABLE;
|
||||||
hcan1.Init.ReceiveFifoLocked = DISABLE;
|
hcan1.Init.ReceiveFifoLocked = DISABLE;
|
||||||
hcan1.Init.TransmitFifoPriority = DISABLE;
|
hcan1.Init.TransmitFifoPriority = DISABLE;
|
||||||
if (HAL_CAN_Init(&hcan1) != HAL_OK)
|
if (HAL_CAN_Init(&hcan1) != HAL_OK)
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ volatile uint32_t g_dbg_valid_accept = 0U;
|
|||||||
|
|
||||||
|
|
||||||
/* ================= 机器人底盘物理参数 ================= */
|
/* ================= 机器人底盘物理参数 ================= */
|
||||||
#define WHEEL_RADIUS_M 0.06f
|
#define WHEEL_RADIUS_M 0.04f
|
||||||
#define WHEEL_TRACK_M 0.30f
|
#define WHEEL_TRACK_M 0.30f
|
||||||
#define PI_F 3.14159265358979323846f
|
#define PI_F 3.14159265358979323846f
|
||||||
|
|
||||||
|
|||||||
@@ -136,9 +136,9 @@ int main(void)
|
|||||||
MX_CAN1_Init();
|
MX_CAN1_Init();
|
||||||
MX_UART4_Init();
|
MX_UART4_Init();
|
||||||
/* USER CODE BEGIN 2 */
|
/* USER CODE BEGIN 2 */
|
||||||
FourWheel_LADRC_Init();
|
|
||||||
HAL_Delay(1000);
|
|
||||||
CAN_App_Init();
|
CAN_App_Init();
|
||||||
|
FourWheel_LADRC_Init();
|
||||||
|
|
||||||
|
|
||||||
/* 启动 10ms 硬实时控制节拍。 */
|
/* 启动 10ms 硬实时控制节拍。 */
|
||||||
if (HAL_TIM_Base_Start_IT(&htim6) != HAL_OK)
|
if (HAL_TIM_Base_Start_IT(&htim6) != HAL_OK)
|
||||||
|
|||||||
@@ -261,9 +261,10 @@ void Motor_Update_RPM(float dt_s)
|
|||||||
s_last_count[MOTOR_RR] = curr_count_rr;
|
s_last_count[MOTOR_RR] = curr_count_rr;
|
||||||
|
|
||||||
/* 左侧输入镜像修正:让“车体前进”统一表现为正脉冲 / 正 RPM。 */
|
/* 左侧输入镜像修正:让“车体前进”统一表现为正脉冲 / 正 RPM。 */
|
||||||
delta[MOTOR_FL] = (int16_t)(-delta[MOTOR_FL]);
|
// delta[MOTOR_FL] = (int16_t)(-delta[MOTOR_FL]);
|
||||||
delta[MOTOR_RL] = (int16_t)(-delta[MOTOR_RL]);
|
// delta[MOTOR_RL] = (int16_t)(-delta[MOTOR_RL]);
|
||||||
|
delta[MOTOR_FR] = (int16_t)(-delta[MOTOR_FR]);
|
||||||
|
delta[MOTOR_RR] = (int16_t)(-delta[MOTOR_RR]);
|
||||||
/* 用 32 位内部累加,避免偶发高速度时 16 位回绕。 */
|
/* 用 32 位内部累加,避免偶发高速度时 16 位回绕。 */
|
||||||
s_odom_acc_ticks[MOTOR_FL] += delta[MOTOR_FL];
|
s_odom_acc_ticks[MOTOR_FL] += delta[MOTOR_FL];
|
||||||
s_odom_acc_ticks[MOTOR_RL] += delta[MOTOR_RL];
|
s_odom_acc_ticks[MOTOR_RL] += delta[MOTOR_RL];
|
||||||
|
|||||||
11
FDR-Core.ioc
11
FDR-Core.ioc
@@ -5,11 +5,12 @@ CAD.provider=
|
|||||||
CAN1.ABOM=ENABLE
|
CAN1.ABOM=ENABLE
|
||||||
CAN1.BS1=CAN_BS1_16TQ
|
CAN1.BS1=CAN_BS1_16TQ
|
||||||
CAN1.BS2=CAN_BS2_4TQ
|
CAN1.BS2=CAN_BS2_4TQ
|
||||||
CAN1.CalculateBaudRate=500000
|
CAN1.CalculateBaudRate=1000000
|
||||||
CAN1.CalculateTimeBit=2000
|
CAN1.CalculateTimeBit=1000
|
||||||
CAN1.CalculateTimeQuantum=95.23809523809524
|
CAN1.CalculateTimeQuantum=47.61904761904762
|
||||||
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2,SJW,ABOM
|
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2,SJW,ABOM,NART
|
||||||
CAN1.Prescaler=4
|
CAN1.NART=ENABLE
|
||||||
|
CAN1.Prescaler=2
|
||||||
CAN1.SJW=CAN_SJW_2TQ
|
CAN1.SJW=CAN_SJW_2TQ
|
||||||
File.Version=6
|
File.Version=6
|
||||||
GPIO.groupedBy=
|
GPIO.groupedBy=
|
||||||
|
|||||||
Reference in New Issue
Block a user