From 3304c053821f8d876ec79e3ac54e98db85671b2a Mon Sep 17 00:00:00 2001 From: xxxxm <2389287465@qq.com> Date: Wed, 18 Mar 2026 22:21:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dai,=E5=85=B3=E9=97=ADcap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Inc/stm32h7xx_it.h | 2 +- Core/Src/dma.c | 8 ++--- Core/Src/stm32h7xx_it.c | 31 +++++++++--------- Core/Src/usart.c | 4 +-- User/device/buzzer.c | 16 +++++++++ User/device/buzzer.h | 1 + User/module/aimbot.c | 7 ++-- User/module/shoot.c | 4 +-- User/module/track.c | 3 ++ User/task/blink.c | 2 ++ User/task/ctrl_chassis.c | 2 +- User/task/rc.c | 8 ++--- User/task/supercap.c | 22 ++++++------- User/task/user_task.h | 2 +- hero_DM02.ioc | 10 +++--- ozone/hero.jdebug.user | 69 +++++++++++++++++++++++---------------- tmp.txt | Bin 0 -> 592 bytes 17 files changed, 113 insertions(+), 78 deletions(-) create mode 100644 tmp.txt diff --git a/Core/Inc/stm32h7xx_it.h b/Core/Inc/stm32h7xx_it.h index 920363c..0d03266 100644 --- a/Core/Inc/stm32h7xx_it.h +++ b/Core/Inc/stm32h7xx_it.h @@ -54,6 +54,7 @@ void UsageFault_Handler(void); void DebugMon_Handler(void); void DMA1_Stream0_IRQHandler(void); void DMA1_Stream1_IRQHandler(void); +void DMA1_Stream3_IRQHandler(void); void FDCAN1_IT0_IRQHandler(void); void FDCAN2_IT0_IRQHandler(void); void FDCAN1_IT1_IRQHandler(void); @@ -64,7 +65,6 @@ void EXTI15_10_IRQHandler(void); void UART5_IRQHandler(void); void DMA2_Stream1_IRQHandler(void); void DMA2_Stream2_IRQHandler(void); -void DMA2_Stream5_IRQHandler(void); void USART10_IRQHandler(void); void FDCAN3_IT0_IRQHandler(void); void FDCAN3_IT1_IRQHandler(void); diff --git a/Core/Src/dma.c b/Core/Src/dma.c index 9e093ba..fad0167 100644 --- a/Core/Src/dma.c +++ b/Core/Src/dma.c @@ -50,15 +50,15 @@ void MX_DMA_Init(void) /* DMA1_Stream1_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); + /* DMA1_Stream3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA1_Stream3_IRQn); /* DMA2_Stream1_IRQn interrupt configuration */ HAL_NVIC_SetPriority(DMA2_Stream1_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA2_Stream1_IRQn); /* DMA2_Stream2_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0); + HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn); - /* DMA2_Stream5_IRQn interrupt configuration */ - HAL_NVIC_SetPriority(DMA2_Stream5_IRQn, 5, 0); - HAL_NVIC_EnableIRQ(DMA2_Stream5_IRQn); } diff --git a/Core/Src/stm32h7xx_it.c b/Core/Src/stm32h7xx_it.c index 50b412a..f800c4c 100644 --- a/Core/Src/stm32h7xx_it.c +++ b/Core/Src/stm32h7xx_it.c @@ -198,6 +198,20 @@ void DMA1_Stream1_IRQHandler(void) /* USER CODE END DMA1_Stream1_IRQn 1 */ } +/** + * @brief This function handles DMA1 stream3 global interrupt. + */ +void DMA1_Stream3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Stream3_IRQn 0 */ + + /* USER CODE END DMA1_Stream3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_uart5_rx); + /* USER CODE BEGIN DMA1_Stream3_IRQn 1 */ + + /* USER CODE END DMA1_Stream3_IRQn 1 */ +} + /** * @brief This function handles FDCAN1 interrupt 0. */ @@ -341,28 +355,13 @@ void DMA2_Stream2_IRQHandler(void) /* USER CODE END DMA2_Stream2_IRQn 1 */ } -/** - * @brief This function handles DMA2 stream5 global interrupt. - */ -void DMA2_Stream5_IRQHandler(void) -{ - /* USER CODE BEGIN DMA2_Stream5_IRQn 0 */ - - /* USER CODE END DMA2_Stream5_IRQn 0 */ - HAL_DMA_IRQHandler(&hdma_uart5_rx); - /* USER CODE BEGIN DMA2_Stream5_IRQn 1 */ - - /* USER CODE END DMA2_Stream5_IRQn 1 */ -} - /** * @brief This function handles USART10 global interrupt. */ void USART10_IRQHandler(void) { /* USER CODE BEGIN USART10_IRQn 0 */ -#include "bsp/uart.h" - BSP_UART_IRQHandler(&huart10); + /* USER CODE END USART10_IRQn 0 */ HAL_UART_IRQHandler(&huart10); /* USER CODE BEGIN USART10_IRQn 1 */ diff --git a/Core/Src/usart.c b/Core/Src/usart.c index 95513fc..bbfc061 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -46,7 +46,7 @@ void MX_UART5_Init(void) huart5.Init.WordLength = UART_WORDLENGTH_9B; huart5.Init.StopBits = UART_STOPBITS_1; huart5.Init.Parity = UART_PARITY_EVEN; - huart5.Init.Mode = UART_MODE_TX_RX; + huart5.Init.Mode = UART_MODE_RX; huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart5.Init.OverSampling = UART_OVERSAMPLING_16; huart5.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; @@ -163,7 +163,7 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) /* UART5 DMA Init */ /* UART5_RX Init */ - hdma_uart5_rx.Instance = DMA2_Stream5; + hdma_uart5_rx.Instance = DMA1_Stream3; hdma_uart5_rx.Init.Request = DMA_REQUEST_UART5_RX; hdma_uart5_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; hdma_uart5_rx.Init.PeriphInc = DMA_PINC_DISABLE; diff --git a/User/device/buzzer.c b/User/device/buzzer.c index f5cc820..925ab63 100644 --- a/User/device/buzzer.c +++ b/User/device/buzzer.c @@ -38,6 +38,18 @@ const Tone_t NOKIA[] = { {NOTE_B, 4, 125}, {NOTE_A, 4, 125}, {NOTE_CS, 4, 250}, {NOTE_E, 4, 250}, {NOTE_A, 4, 500} }; + +// 蔡徐坤 - 只因你太美(副歌高潮段落) +const Tone_t JNTM[] = { + {NOTE_E, 5, 150}, {NOTE_D, 5, 150}, {NOTE_E, 5, 150}, {NOTE_C, 5, 150}, {NOTE_D, 5, 300}, // 只 因 你 太 美 + {NOTE_C, 5, 150}, {NOTE_A, 4, 300}, {NOTE_REST, 0, 150}, // ba by ~ + {NOTE_E, 5, 150}, {NOTE_D, 5, 150}, {NOTE_E, 5, 150}, {NOTE_C, 5, 150}, {NOTE_D, 5, 300}, // 只 因 你 太 美 + {NOTE_C, 5, 150}, {NOTE_A, 4, 300}, {NOTE_REST, 0, 150}, // ba by ~ + {NOTE_E, 5, 150}, {NOTE_D, 5, 150}, {NOTE_E, 5, 150}, {NOTE_C, 5, 150}, // 只 因 你 实 + {NOTE_D, 5, 150}, {NOTE_E, 5, 150}, {NOTE_D, 5, 150}, {NOTE_C, 5, 150}, {NOTE_D, 5, 300}, // 在 是 太 美 + {NOTE_C, 5, 150}, {NOTE_A, 4, 300}, {NOTE_REST, 0, 150}, // ba by ~ + {NOTE_E, 5, 150}, {NOTE_D, 5, 150}, {NOTE_E, 5, 150}, {NOTE_C, 5, 150}, {NOTE_D, 5, 500} // 只 因 你 太 美 ~ +}; /* USER MUSIC MENU END */ static void BUZZER_Update(BUZZER_t *buzzer){ @@ -149,6 +161,10 @@ int8_t BUZZER_PlayMusic(BUZZER_t *buzzer, MUSIC_t music) { melody = NOKIA; melody_length = sizeof(NOKIA) / sizeof(Tone_t); break; + case MUSIC_JNTM: + melody = JNTM; + melody_length = sizeof(JNTM) / sizeof(Tone_t); + break; default: return DEVICE_ERR; } diff --git a/User/device/buzzer.h b/User/device/buzzer.h index 4ef7e43..60a4579 100644 --- a/User/device/buzzer.h +++ b/User/device/buzzer.h @@ -68,6 +68,7 @@ typedef enum { /* USER MUSIC MENU BEGIN */ MUSIC_RM, ///< RM战队音乐 MUSIC_NOKIA, ///< 诺基亚经典铃声 + MUSIC_JNTM, ///< 只因你太美 /* USER MUSIC MENU END */ } MUSIC_t; diff --git a/User/module/aimbot.c b/User/module/aimbot.c index d5745be..d6f2c1a 100644 --- a/User/module/aimbot.c +++ b/User/module/aimbot.c @@ -91,9 +91,10 @@ int8_t Aimbot_Init(Aimbot_Param_t *param) { BSP_FDCAN_Init(); /* 注册 AI 指令帧队列(下层板接收/上层板发送) */ - BSP_FDCAN_RegisterId(param->can, param->cmd_id, - BSP_FDCAN_DEFAULT_QUEUE_SIZE); - + for (uint8_t i = 0; i < 3; i++) { + BSP_FDCAN_RegisterId(param->can, param->cmd_id + i, + 10); + } /* 注册反馈数据帧队列(上层板接收/下层板发送) */ for (uint8_t i = 0; i < AIMBOT_FB_FRAME_NUM; i++) { BSP_FDCAN_RegisterId(param->can, param->fb_base_id + i, diff --git a/User/module/shoot.c b/User/module/shoot.c index 020f9c5..1c1cbe4 100644 --- a/User/module/shoot.c +++ b/User/module/shoot.c @@ -183,8 +183,8 @@ int8_t Shoot_CaluTargetRPM(Shoot_t *s, float target_speed) s->target_variable.fric_rpm=5000.0f; break; case SHOOT_PROJECTILE_42MM: - s->target_variable.fric_rpm=5000.0f;//6500 - break; + s->target_variable.fric_rpm=4000.0f;//6500 + break; } return SHOOT_OK; } diff --git a/User/module/track.c b/User/module/track.c index 95b3994..8edae04 100644 --- a/User/module/track.c +++ b/User/module/track.c @@ -12,6 +12,7 @@ #include "bsp/time.h" #include "component/filter/filter.h" #include "component/user_math.h" +#include "device/motor_dm.h" #include "module/chassis.h" /* Private typedef ---------------------------------------------------------- */ /* Private define ----------------------------------------------------------- */ @@ -102,6 +103,8 @@ uint8_t Track_UpdateFeedback(Track_t *t) if (t == NULL) { return TRACK_ERR_NULL; // 参数错误 } + MOTOR_DM_Enable(&t->param->motor[0]); + MOTOR_DM_Enable(&t->param->motor[1]); for (int i=0; iparam->motor[i]); MOTOR_DM_t *rm_motor = MOTOR_DM_GetMotor(&t->param->motor[i]); diff --git a/User/task/blink.c b/User/task/blink.c index d971504..f03ebc5 100644 --- a/User/task/blink.c +++ b/User/task/blink.c @@ -35,6 +35,8 @@ void Task_blink(void *argument) { uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */ /* USER CODE INIT BEGIN */ BUZZER_Init(&buzzer, BSP_PWM_BUZZER); + BUZZER_PlayMusic(&buzzer, MUSIC_NOKIA); + /* USER CODE INIT END */ while (1) { diff --git a/User/task/ctrl_chassis.c b/User/task/ctrl_chassis.c index 6dbe54a..1ae443c 100644 --- a/User/task/ctrl_chassis.c +++ b/User/task/ctrl_chassis.c @@ -63,7 +63,7 @@ void Task_ctrl_chassis(void *argument) { /* 功率限制:裁判系统在线时使用下发上限,否则使用保守默认值 */ float power_limit = (chassis_ref.ref_status == REF_STATUS_RUNNING) ? chassis_ref.chassis_power_limit - : 500.0f; + : 80.0f; Chassis_Power_Control(&chassis, power_limit); Chassis_Output(&chassis); diff --git a/User/task/rc.c b/User/task/rc.c index ced3704..21b780f 100644 --- a/User/task/rc.c +++ b/User/task/rc.c @@ -28,7 +28,7 @@ AT9S_t at9s; #endif #ifdef DR16 -// 将DR16变量放到RAM_D1 (0x24000000),用于DMA传输 +// 将DR16变量放到RAM_D1,用于DMA传输并保证32字节对齐以支持Cache操作 // __attribute__((section(".ram_d1"))) __attribute__((aligned(32))) DR16_t dr16; static DR16_SwitchPos_t last_sw_l = DR16_SW_ERR; /* 记录左拨杆上一次状态 */ @@ -73,7 +73,7 @@ void Task_rc(void *argument) { #endif #ifdef DR16 // 等待DMA接收完成 - if (DR16_WaitDmaCplt(20)) { + if (DR16_WaitDmaCplt(100)) { DR16_ParseData(&dr16); } else { DR16_Offline(&dr16); @@ -87,7 +87,7 @@ void Task_rc(void *argument) { /* 拨杆从非UP状态切换到UP状态,且复位功能已使能,触发系统复位 */ if ( dr16.data.sw_l == DR16_SW_UP && - last_sw_l != DR16_SW_UP) { + last_sw_l != DR16_SW_UP && last_sw_l != DR16_SW_ERR) { reset=!reset; } last_sw_l = dr16.data.sw_l; /* 更新拨杆状态 */ @@ -95,6 +95,6 @@ void Task_rc(void *argument) { #endif /* USER CODE END */ osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */ - } + } } diff --git a/User/task/supercap.c b/User/task/supercap.c index aefb6e9..fb21733 100644 --- a/User/task/supercap.c +++ b/User/task/supercap.c @@ -32,15 +32,15 @@ void Task_supercap(void *argument) { uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */ /* USER CODE INIT BEGIN */ - SuperCap_Init(); + // SuperCap_Init(); - SuperCap_CanTX.Enable = 1 ; //超级电容使能。1使能,0失能 + // SuperCap_CanTX.Enable = 1 ; //超级电容使能。1使能,0失能 - SuperCap_CanTX.Charge = 1 ; //V1.1超级电容充电。1充电,0放电,在PLUS版本中,此标志位无效,超电的充放电是自动的 + // SuperCap_CanTX.Charge = 1 ; //V1.1超级电容充电。1充电,0放电,在PLUS版本中,此标志位无效,超电的充放电是自动的 - SuperCap_CanTX.Powerlimit = 120 ; //裁判系统功率限制 + // SuperCap_CanTX.Powerlimit = 120 ; //裁判系统功率限制 - SuperCap_CanTX.ChargePower = 1 ; //V1.1超级电容充电功率,在PLUS版本中,此参数,超电的充电功率随着底盘功率变化 + // SuperCap_CanTX.ChargePower = 1 ; //V1.1超级电容充电功率,在PLUS版本中,此参数,超电的充电功率随着底盘功率变化 /* USER CODE INIT END */ @@ -48,14 +48,14 @@ void Task_supercap(void *argument) { tick += delay_tick; /* 计算下一个唤醒时刻 */ /* USER CODE BEGIN */ /* 动态更新功率上限:裁判系统在线时使用下发值,否则回退到初始化值120W */ - osMessageQueueGet(task_runtime.msgq.cap.ref, &cap_ref, NULL, 0); - if (cap_ref.ref_status == REF_STATUS_RUNNING && cap_ref.chassis_power_limit > 0.0f) { - SuperCap_CanTX.Powerlimit = (uint8_t)cap_ref.chassis_power_limit; - } + // osMessageQueueGet(task_runtime.msgq.cap.ref, &cap_ref, NULL, 0); + // if (cap_ref.ref_status == REF_STATUS_RUNNING && cap_ref.chassis_power_limit > 0.0f) { + // SuperCap_CanTX.Powerlimit = (uint8_t)cap_ref.chassis_power_limit; + // } - SuperCap_Update(); + // SuperCap_Update(); - CAN_TX_SuperCapData(&SuperCap_CanTX); + // CAN_TX_SuperCapData(&SuperCap_CanTX); /* USER CODE END */ osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */ diff --git a/User/task/user_task.h b/User/task/user_task.h index 27d88c8..022dfd3 100644 --- a/User/task/user_task.h +++ b/User/task/user_task.h @@ -25,7 +25,7 @@ extern "C" { #define REFEREE_FREQ (500.0) /* 任务初始化延时ms */ #define TASK_INIT_DELAY (100u) -#define RC_INIT_DELAY (500) +#define RC_INIT_DELAY (0) #define ATTI_ESTI_INIT_DELAY (0) #define BLINK_INIT_DELAY (0) #define CTRL_CHASSIS_INIT_DELAY (0) diff --git a/hero_DM02.ioc b/hero_DM02.ioc index f1d129b..d23cc2b 100644 --- a/hero_DM02.ioc +++ b/hero_DM02.ioc @@ -49,7 +49,7 @@ Dma.SPI2_TX.1.SyncSignalID=NONE Dma.UART5_RX.2.Direction=DMA_PERIPH_TO_MEMORY Dma.UART5_RX.2.EventEnable=DISABLE Dma.UART5_RX.2.FIFOMode=DMA_FIFOMODE_DISABLE -Dma.UART5_RX.2.Instance=DMA2_Stream5 +Dma.UART5_RX.2.Instance=DMA1_Stream3 Dma.UART5_RX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE Dma.UART5_RX.2.MemInc=DMA_MINC_ENABLE Dma.UART5_RX.2.Mode=DMA_NORMAL @@ -231,9 +231,9 @@ MxDb.Version=DB.6.0.150 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.DMA1_Stream0_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA1_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true +NVIC.DMA1_Stream3_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true NVIC.DMA2_Stream1_IRQn=true\:5\:0\:false\:false\:true\:true\:false\:true\:true -NVIC.DMA2_Stream2_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:true\:true -NVIC.DMA2_Stream5_IRQn=true\:5\:0\:true\:false\:true\:false\:false\:true\:true +NVIC.DMA2_Stream2_IRQn=true\:5\:0\:false\:false\:true\:false\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.EXTI15_10_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.FDCAN1_IT0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true @@ -493,7 +493,7 @@ SPI6.Mode=SPI_MODE_MASTER SPI6.VirtualType=VM_MASTER TIM12.Channel-PWM\ Generation2\ CH2=TIM_CHANNEL_2 TIM12.IPParameters=Channel-PWM Generation2 CH2,Prescaler,Period -TIM12.Period=2500-1 +TIM12.Period=2000-1 TIM12.Prescaler=24-1 TIM3.Channel-PWM\ Generation4\ CH4=TIM_CHANNEL_4 TIM3.IPParameters=Channel-PWM Generation4 CH4,Prescaler,Period @@ -503,7 +503,7 @@ UART5.BaudRate=100000 UART5.DMADisableonRxErrorParam=UART_ADVFEATURE_DMA_ENABLEONRXERROR UART5.FIFOMode=FIFOMODE_DISABLE UART5.IPParameters=Mode,BaudRate,Parity,StopBits,WordLength,DMADisableonRxErrorParam,OverrunDisableParam,FIFOMode -UART5.Mode=MODE_TX_RX +UART5.Mode=MODE_RX UART5.OverrunDisableParam=UART_ADVFEATURE_OVERRUN_ENABLE UART5.Parity=PARITY_EVEN UART5.StopBits=UART_STOPBITS_1 diff --git a/ozone/hero.jdebug.user b/ozone/hero.jdebug.user index 6466f97..2442054 100644 --- a/ozone/hero.jdebug.user +++ b/ozone/hero.jdebug.user @@ -1,68 +1,79 @@ -GraphedExpression="((((gimbal).feedback).imu).eulr).pit", Color=#e56a6f -GraphedExpression="((((gimbal).feedback).imu).eulr).yaw", Color=#35792b -GraphedExpression="(((ai_cmd_from_can).gimbal_t).setpoint).yaw", Color=#769dda -GraphedExpression="(((ai_cmd_from_can).gimbal_t).setpoint).pit", Color=#b14f0d -OpenDocument="gimbal.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/gimbal.h", Line=57 + +Breakpoint=D:/CUBEMX/hero/god-yuan-hero/User/device/dr16.c:69:52, State=BP_STATE_DISABLED +GraphedExpression="((((gimbal).feedback).imu).eulr).pit", Color=#e56a6f, Show=0 +GraphedExpression="((((gimbal).feedback).imu).eulr).yaw", Color=#35792b, Show=0 +GraphedExpression="(((ai_cmd_from_can).gimbal_t).setpoint).yaw", Color=#769dda, Show=0 +GraphedExpression="(((ai_cmd_from_can).gimbal_t).setpoint).pit", Color=#b14f0d, Show=0 +GraphedExpression="((dr16).raw_data).ch_r_x", DisplayFormat=DISPLAY_FORMAT_DEC, Color=#b3c38e +GraphedExpression="((dr16).data).ch_r_x", Color=#ab7b05, Show=0 +GraphedExpression="((((gimbal).feedback).motor).pit).rotor_abs_angle", Color=#7fd3b7, Show=0 +OpenDocument="startup_stm32h723xx.s", FilePath="D:/CUBEMX/hero/god-yuan-hero/startup_stm32h723xx.s", Line=47 +OpenDocument="port.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/portable/GCC/ARM_CM4F/port.c", Line=716 +OpenDocument="tasks.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=4104 +OpenDocument="buzzer.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/buzzer.c", Line=79 +OpenDocument="blink.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/blink.c", Line=11 +OpenDocument="motor_dm.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/motor_dm.c", Line=40 OpenDocument="ctrl_shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_shoot.c", Line=12 OpenDocument="ahrs.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/component/ahrs/ahrs.h", Line=0 OpenDocument="main.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/main.c", Line=60 OpenDocument="ctrl_gimbal.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_gimbal.c", Line=0 -OpenDocument="startup_stm32h723xx.s", FilePath="D:/CUBEMX/hero/god-yuan-hero/startup_stm32h723xx.s", Line=48 +OpenDocument="gimbal.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/gimbal.h", Line=57 OpenDocument="shoot.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/shoot.c", Line=33 OpenDocument="ref_main.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ref_main.c", Line=12 OpenDocument="referee.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/referee.h", Line=542 -OpenDocument="uart.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/bsp/uart.c", Line=111 +OpenDocument="uart.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/bsp/uart.c", Line=108 OpenDocument="supercap.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/supercap.c", Line=0 -OpenDocument="stm32h7xx_it.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32h7xx_it.c", Line=351 +OpenDocument="stm32h7xx_it.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/stm32h7xx_it.c", Line=83 OpenDocument="cmsis_os2.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c", Line=515 OpenDocument="config.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/config.c", Line=455 -OpenDocument="ai.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ai.c", Line=30 +OpenDocument="ai.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ai.c", Line=42 OpenDocument="referee.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/referee.c", Line=21 OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/cmd.c", Line=51 -OpenDocument="stm32h7xx_hal_fdcan.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c", Line=5367 -OpenDocument="track.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/track.c", Line=87 +OpenDocument="rc.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/rc.c", Line=48 +OpenDocument="track.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/track.c", Line=86 OpenDocument="referee_proto_types.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/referee_proto_types.h", Line=10 OpenDocument="cmsis_gcc.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/Drivers/CMSIS/Include/cmsis_gcc.h", Line=1193 OpenDocument="cmd.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/cmd/cmd.c", Line=192 OpenDocument="fdcan.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/bsp/fdcan.c", Line=98 OpenDocument="cmd.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/cmd/cmd.h", Line=0 OpenDocument="vision_bridge.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/vision_bridge.c", Line=78 -OpenDocument="ctrl_chassis.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_chassis.c", Line=36 -OpenDocument="motor.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/motor.h", Line=20 +OpenDocument="ctrl_chassis.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/ctrl_chassis.c", Line=33 +OpenDocument="motor.h", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/motor.h", Line=19 OpenDocument="filter.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/component/filter/filter.c", Line=54 OpenDocument="user_math.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/component/user_math.c", Line=45 OpenDocument="pid.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/component/pid.c", Line=61 OpenDocument="gimbal.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/gimbal.c", Line=220 -OpenDocument="tasks.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/tasks.c", Line=3655 +OpenDocument="stm32h7xx_hal_fdcan.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_fdcan.c", Line=6179 OpenDocument="motor_rm.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/device/motor_rm.c", Line=129 OpenDocument="stm32h7xx_hal_uart_ex.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Drivers/STM32H7xx_HAL_Driver/Src/stm32h7xx_hal_uart_ex.c", Line=964 OpenDocument="queue.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Middlewares/Third_Party/FreeRTOS/Source/queue.c", Line=1275 OpenDocument="chassis.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/module/chassis.c", Line=213 -OpenDocument="supercap.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/supercap.c", Line=18 +OpenDocument="supercap.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/supercap.c", Line=15 OpenDocument="atti_esti.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/task/atti_esti.c", Line=121 OpenDocument="fdcan.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/Core/Src/fdcan.c", Line=0 OpenDocument="time.c", FilePath="D:/CUBEMX/hero/god-yuan-hero/User/bsp/time.c", Line=17 OpenToolbar="Debug", Floating=0, x=0, y=0 -OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=1, w=728, h=584, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1 -OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=328, h=930, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=0, w=728, h=345, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Memory 1", DockArea=BOTTOM, x=0, y=0, w=239, h=544, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0xFFFF5088 -OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=1, w=728, h=584, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=328, h=930, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 -OpenWindow="Data Sampling", DockArea=BOTTOM, x=2, y=0, w=866, h=525, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0 -OpenWindow="Timeline", DockArea=BOTTOM, x=1, y=0, w=1453, h=544, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="5 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="21;187", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="1238;0", CodeGraphLegendShown=0, CodeGraphLegendPosition="1254;0" -OpenWindow="Console", DockArea=BOTTOM, x=2, y=0, w=866, h=525, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Registers 1", DockArea=RIGHT, x=0, y=2, w=695, h=338, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, FilteredItems=[], RefreshRate=1 +OpenWindow="Source Files", DockArea=LEFT, x=0, y=0, w=312, h=983, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Disassembly", DockArea=RIGHT, x=0, y=1, w=695, h=322, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Memory 1", DockArea=BOTTOM, x=0, y=0, w=462, h=491, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, EditorAddress=0xFFFF5088 +OpenWindow="Watched Data 1", DockArea=RIGHT, x=0, y=2, w=695, h=338, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Functions", DockArea=LEFT, x=0, y=0, w=312, h=983, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="Data Sampling", DockArea=BOTTOM, x=2, y=0, w=752, h=472, TabPos=0, TopOfStack=1, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, VisibleTab=0, UniformSampleSpacing=0 +OpenWindow="Timeline", DockArea=BOTTOM, x=1, y=0, w=1344, h=491, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=1, DataPaneShown=1, PowerPaneShown=0, CodePaneShown=0, PinCursor="Cursor Movable", TimePerDiv="5 s / Div", TimeStampFormat="Time", DataGraphDrawAsPoints=0, DataGraphLegendShown=1, DataGraphUniformSampleSpacing=0, DataGraphLegendPosition="22;138", DataGraphShowNamesAtCursor=0, PowerGraphDrawAsPoints=0, PowerGraphLegendShown=0, PowerGraphAvgFilterTime=Off, PowerGraphAvgFilterLen=Off, PowerGraphUniformSampleSpacing=0, PowerGraphLegendPosition="1122;-69", CodeGraphLegendShown=0, CodeGraphLegendPosition="1138;0" +OpenWindow="Console", DockArea=BOTTOM, x=2, y=0, w=752, h=472, TabPos=1, TopOfStack=0, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0 +OpenWindow="RTOS", DockArea=RIGHT, x=0, y=0, w=695, h=321, FilterBarShown=0, TotalValueBarShown=0, ToolBarShown=0, Showing="" SmartViewPlugin="", Page="", Toolbar="Hidden", Window="SmartView 1" -TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[120;144;464] +TableHeader="Registers 1", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Description"], ColWidths=[120;144;405] TableHeader="Functions", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Address";"Size";"#Insts";"Source"], ColWidths=[1594;104;100;100;100] TableHeader="Power Sampling", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";"Ch 0"], ColWidths=[100;100;100] TableHeader="RegisterSelectionDialog", SortCol="None", SortOrder="ASCENDING", VisibleCols=[], ColWidths=[] TableHeader="Source Files", SortCol="File", SortOrder="ASCENDING", VisibleCols=["File";"Status";"Size";"#Insts";"Path"], ColWidths=[215;100;100;100;1022] TableHeader="Watched Data 1", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Value";"Location";"Refresh"], ColWidths=[298;229;145;100] -TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" ((((gimbal).feedback).imu).eulr).pit";" ((((gimbal).feedback).imu).eulr).yaw";" (((ai_cmd_from_can).gimbal_t).setpoint).yaw";" (((ai_cmd_from_can).gimbal_t).setpoint).pit"], ColWidths=[100;100;100;100;100;100] -TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[118;100;134;134;134;144;110;144;134] +TableHeader="Data Sampling Table", SortCol="None", SortOrder="ASCENDING", VisibleCols=["Index";"Time";" ((((gimbal).feedback).imu).eulr).pit";" ((((gimbal).feedback).imu).eulr).yaw";" (((ai_cmd_from_can).gimbal_t).setpoint).yaw";" (((ai_cmd_from_can).gimbal_t).setpoint).pit";" ((dr16).raw_data).ch_r_x";" ((dr16).data).ch_r_x";" ((((gimbal).feedback).motor).pit).rotor_abs_angle"], ColWidths=[100;100;100;100;100;100;100;100;100] +TableHeader="Data Sampling Setup", SortCol="Expression", SortOrder="ASCENDING", VisibleCols=["Expression";"Type";"Value";"Min";"Max";"Average";"# Changes";"Min. Change";"Max. Change"], ColWidths=[118;214;134;134;124;134;110;154;144] TableHeader="TargetExceptionDialog", SortCol="Name", SortOrder="ASCENDING", VisibleCols=["Name";"Value";"Address";"Description"], ColWidths=[200;100;100;340] WatchedExpression="cmd", RefreshRate=5, Window=Watched Data 1 WatchedExpression="bmi088", RefreshRate=5, Window=Watched Data 1 @@ -84,4 +95,6 @@ WatchedExpression="gimbal_cmd", RefreshRate=5, Window=Watched Data 1 WatchedExpression="for_cmdnuc", RefreshRate=5, Window=Watched Data 1 WatchedExpression="ai_cmd_from_can", RefreshRate=5, Window=Watched Data 1 WatchedExpression="raw_shoot", RefreshRate=5, Window=Watched Data 1 -WatchedExpression="shoot_forai", RefreshRate=5, Window=Watched Data 1 \ No newline at end of file +WatchedExpression="shoot_forai", RefreshRate=5, Window=Watched Data 1 +WatchedExpression="dr16", RefreshRate=5, Window=Watched Data 1 +WatchedExpression="ai_cmd_from_can", RefreshRate=5, Window=Watched Data 1 \ No newline at end of file diff --git a/tmp.txt b/tmp.txt new file mode 100644 index 0000000000000000000000000000000000000000..c5d12c983b43d63317485eadcb576e58940dd7ea GIT binary patch literal 592 zcma)(Jx{_=7=_Q^MB?BoiFPc+1RW$X#t;MqqliTmP+|qdLP9A5HPNJ9`~ePxh0R%J z26b_AadCD~;_g52X=wO=r@!os#o^zjmeh9EWH%F{`b&-+|)XV*{e%F+gcCM>Q z%7pQziF+NvhjBP;t)=!1s|fs9hm38maU{5lqkud|2`8Lo1QF$(h-GYHb3_^DeFG6> zQNba~to~BP5r7LbL&xvL|C#GJW#>FSbI@_b9s=sjbw($Rwa98z;iA*x(8*(Sc`_a8 zXXC+itMA38D);V{g{qlpCtr(V@%Cl6X=bK+&en9wTj^>(%tB>XXX`w3BXzaw#zC^3gV$#4r^;d-BHy(A zGOOS39)5N$+xPR#HhA6OUzW(naw^bYz!FD;d34r46s&v=p4F%o=oZ2bQw6xnh+(a- HG;C^Lcf)al literal 0 HcmV?d00001