减小了p,让set不至于很大

This commit is contained in:
zxy 2025-10-19 16:43:01 +08:00
parent 7bc41dbeaf
commit f2939c9a46
28 changed files with 5350 additions and 4842 deletions

View File

@ -56,6 +56,7 @@ void SysTick_Handler(void);
void EXTI0_IRQHandler(void); void EXTI0_IRQHandler(void);
void EXTI4_IRQHandler(void); void EXTI4_IRQHandler(void);
void DMA1_Stream1_IRQHandler(void); void DMA1_Stream1_IRQHandler(void);
void CAN1_TX_IRQHandler(void);
void CAN1_RX0_IRQHandler(void); void CAN1_RX0_IRQHandler(void);
void CAN1_RX1_IRQHandler(void); void CAN1_RX1_IRQHandler(void);
void EXTI9_5_IRQHandler(void); void EXTI9_5_IRQHandler(void);

View File

@ -42,8 +42,8 @@ void MX_CAN1_Init(void)
hcan1.Init.Prescaler = 3; hcan1.Init.Prescaler = 3;
hcan1.Init.Mode = CAN_MODE_NORMAL; hcan1.Init.Mode = CAN_MODE_NORMAL;
hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ; hcan1.Init.SyncJumpWidth = CAN_SJW_1TQ;
hcan1.Init.TimeSeg1 = CAN_BS1_6TQ; hcan1.Init.TimeSeg1 = CAN_BS1_10TQ;
hcan1.Init.TimeSeg2 = CAN_BS2_7TQ; hcan1.Init.TimeSeg2 = CAN_BS2_3TQ;
hcan1.Init.TimeTriggeredMode = DISABLE; hcan1.Init.TimeTriggeredMode = DISABLE;
hcan1.Init.AutoBusOff = DISABLE; hcan1.Init.AutoBusOff = DISABLE;
hcan1.Init.AutoWakeUp = DISABLE; hcan1.Init.AutoWakeUp = DISABLE;
@ -122,6 +122,8 @@ void HAL_CAN_MspInit(CAN_HandleTypeDef* canHandle)
HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
/* CAN1 interrupt Init */ /* CAN1 interrupt Init */
HAL_NVIC_SetPriority(CAN1_TX_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(CAN1_TX_IRQn);
HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 5, 0); HAL_NVIC_SetPriority(CAN1_RX0_IRQn, 5, 0);
HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn); HAL_NVIC_EnableIRQ(CAN1_RX0_IRQn);
HAL_NVIC_SetPriority(CAN1_RX1_IRQn, 5, 0); HAL_NVIC_SetPriority(CAN1_RX1_IRQn, 5, 0);
@ -186,6 +188,7 @@ void HAL_CAN_MspDeInit(CAN_HandleTypeDef* canHandle)
HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1); HAL_GPIO_DeInit(GPIOD, GPIO_PIN_0|GPIO_PIN_1);
/* CAN1 interrupt Deinit */ /* CAN1 interrupt Deinit */
HAL_NVIC_DisableIRQ(CAN1_TX_IRQn);
HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn); HAL_NVIC_DisableIRQ(CAN1_RX0_IRQn);
HAL_NVIC_DisableIRQ(CAN1_RX1_IRQn); HAL_NVIC_DisableIRQ(CAN1_RX1_IRQn);
/* USER CODE BEGIN CAN1_MspDeInit 1 */ /* USER CODE BEGIN CAN1_MspDeInit 1 */

View File

@ -149,7 +149,7 @@ void SystemClock_Config(void)
RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
RCC_OscInitStruct.PLL.PLLM = 6; RCC_OscInitStruct.PLL.PLLM = 6;
RCC_OscInitStruct.PLL.PLLN = 72; RCC_OscInitStruct.PLL.PLLN = 168;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 4; RCC_OscInitStruct.PLL.PLLQ = 4;
if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
@ -163,10 +163,10 @@ void SystemClock_Config(void)
|RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4;
RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2;
if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_5) != HAL_OK)
{ {
Error_Handler(); Error_Handler();
} }

View File

@ -236,6 +236,20 @@ void DMA1_Stream1_IRQHandler(void)
/* USER CODE END DMA1_Stream1_IRQn 1 */ /* USER CODE END DMA1_Stream1_IRQn 1 */
} }
/**
* @brief This function handles CAN1 TX interrupts.
*/
void CAN1_TX_IRQHandler(void)
{
/* USER CODE BEGIN CAN1_TX_IRQn 0 */
/* USER CODE END CAN1_TX_IRQn 0 */
HAL_CAN_IRQHandler(&hcan1);
/* USER CODE BEGIN CAN1_TX_IRQn 1 */
/* USER CODE END CAN1_TX_IRQn 1 */
}
/** /**
* @brief This function handles CAN1 RX0 interrupts. * @brief This function handles CAN1 RX0 interrupts.
*/ */
@ -302,7 +316,7 @@ void USART1_IRQHandler(void)
// /* USER CODE END USART3_IRQn 0 */ // /* USER CODE END USART3_IRQn 0 */
// HAL_UART_IRQHandler(&huart3); // HAL_UART_IRQHandler(&huart3);
// /* USER CODE BEGIN USART3_IRQn 1 */ // /* USER CODE BEGIN USART3_IRQn 1 */
//////// BSP_UART_IRQHandler(&huart3); ////////// BSP_UART_IRQHandler(&huart3);
// /* USER CODE END USART3_IRQn 1 */ // /* USER CODE END USART3_IRQn 1 */
//} //}

View File

@ -6,3 +6,7 @@
[info] Log at : 2025/10/17|20:08:11|GMT+0800 [info] Log at : 2025/10/17|20:08:11|GMT+0800
[info] Log at : 2025/10/19|16:41:15|GMT+0800
[info] Log at : 2025/10/19|16:44:00|GMT+0800

View File

@ -1,4 +1,4 @@
*** Using Compiler 'V6.7', folder: 'D:\keil\ARM\ARMCLANG\Bin' *** Using Compiler 'V6.7', folder: 'D:\keil\ARM\ARMCLANG\Bin'
Build target 'zzzzh' Build target 'zzzzh'
"zzzzh\zzzzh.axf" - 0 Error(s), 0 Warning(s). "zzzzh\zzzzh.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed: 00:00:02 Build Time Elapsed: 00:00:05

View File

@ -1 +1 @@
2025/10/17 20:08:32 2025/10/19 16:41:29

File diff suppressed because one or more lines are too long

View File

@ -101,7 +101,7 @@
<sRunDeb>0</sRunDeb> <sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime> <sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<nTsel>5</nTsel> <nTsel>2</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@ -112,7 +112,7 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon> <pMon>BIN\CMSIS_AGDI.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry> <SetRegEntry>
@ -143,7 +143,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>DLGUARM</Key> <Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@ -161,20 +161,15 @@
<Ww> <Ww>
<count>0</count> <count>0</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>dr16,0x0A</ItemText> <ItemText>bmi088,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>1</count> <count>1</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>bmi088,0x0A</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>imu_eulr,0x0A</ItemText> <ItemText>imu_eulr,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>3</count> <count>2</count>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<ItemText>imu_temp_pid_param</ItemText> <ItemText>imu_temp_pid_param</ItemText>
</Ww> </Ww>
@ -183,27 +178,22 @@
<Ww> <Ww>
<count>0</count> <count>0</count>
<WinNumber>2</WinNumber> <WinNumber>2</WinNumber>
<ItemText>dr16,0x0A</ItemText> <ItemText>chassis_fb,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>1</count> <count>1</count>
<WinNumber>2</WinNumber> <WinNumber>2</WinNumber>
<ItemText>chassis_fb</ItemText> <ItemText>chassis_cmd,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>2</count> <count>2</count>
<WinNumber>2</WinNumber> <WinNumber>2</WinNumber>
<ItemText>cmd_to_chassis</ItemText> <ItemText>dr16,0x0A</ItemText>
</Ww> </Ww>
<Ww> <Ww>
<count>3</count> <count>3</count>
<WinNumber>2</WinNumber> <WinNumber>2</WinNumber>
<ItemText>chassis</ItemText> <ItemText>chassis,0x0A</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>2</WinNumber>
<ItemText>\\zzzzh\../User/task/test.c\chassis.limit</ItemText>
</Ww> </Ww>
</WatchWindow2> </WatchWindow2>
<Tracepoint> <Tracepoint>

View File

@ -81,7 +81,7 @@
</BeforeMake> </BeforeMake>
<AfterMake> <AfterMake>
<RunUserProg1>0</RunUserProg1> <RunUserProg1>0</RunUserProg1>
<RunUserProg2>1</RunUserProg2> <RunUserProg2>0</RunUserProg2>
<UserProg1Name></UserProg1Name> <UserProg1Name></UserProg1Name>
<UserProg2Name></UserProg2Name> <UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode> <UserProg1Dos16Mode>0</UserProg1Dos16Mode>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -17,12 +17,12 @@ Library Manager: ArmAr.exe V6.7
Hex Converter: FromElf.exe V6.7 Hex Converter: FromElf.exe V6.7
CPU DLL: SARMCM3.DLL V5.24.1 CPU DLL: SARMCM3.DLL V5.24.1
Dialog DLL: DCM.DLL V1.16.0.0 Dialog DLL: DCM.DLL V1.16.0.0
Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.0.1.0 Target DLL: CMSIS_AGDI.dll V1.28.3.0
Dialog DLL: TCM.DLL V1.32.0.0 Dialog DLL: TCM.DLL V1.32.0.0
<h2>Project:</h2> <h2>Project:</h2>
c:\Users\ÕÅÐÞÒÕ\Desktop\chassis\MDK-ARM\zzzzh.uvprojx C:\Users\ÕÅÐÞÒÕ\Desktop\chassis\MDK-ARM\zzzzh.uvprojx
Project File Date: 10/14/2025 Project File Date: 10/19/2025
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V6.7', folder: 'D:\keil\ARM\ARMCLANG\Bin' *** Using Compiler 'V6.7', folder: 'D:\keil\ARM\ARMCLANG\Bin'

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
Dependencies for Project 'zzzzh', Target 'zzzzh': (DO NOT MODIFY !) Dependencies for Project 'zzzzh', Target 'zzzzh': (DO NOT MODIFY !)
F (startup_stm32f407xx.s)(0x68DDDE44)(--cpu Cortex-M4.fp -g --pd "__MICROLIB SETA 1" -I ../Core/Inc -I.\RTE\_zzzzh -ID:\keil\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include -ID:\keil\ARM\PACK\Keil\STM32F4xx_DFP\2.14.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include --pd "__UVISION_VERSION SETA 524" --pd "_RTE_ SETA 1" --pd "STM32F407xx SETA 1" --list startup_stm32f407xx.lst --xref -o zzzzh\startup_stm32f407xx.o --depend zzzzh\startup_stm32f407xx.d) F (startup_stm32f407xx.s)(0x68DDDE44)(--cpu Cortex-M4.fp -g --pd "__MICROLIB SETA 1" -I ../Core/Inc -I.\RTE\_zzzzh -ID:\keil\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\Include -ID:\keil\ARM\PACK\Keil\STM32F4xx_DFP\2.14.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include --pd "__UVISION_VERSION SETA 524" --pd "_RTE_ SETA 1" --pd "STM32F407xx SETA 1" --list startup_stm32f407xx.lst --xref -o zzzzh\startup_stm32f407xx.o --depend zzzzh\startup_stm32f407xx.d)
F (../Core/Src/main.c)(0x68EE5A28)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/main.o -MD) F (../Core/Src/main.c)(0x68F4EE3E)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/main.o -MD)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68EE5A28) I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68EE5A28)
@ -133,7 +133,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os.h)(0x68C65D
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59)
I (..\User\task\user_task.h)(0x68ECF321) I (..\User\task\user_task.h)(0x68ECF321)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\User\bsp\bsp.h)(0x68EE5C62) I (..\User\bsp\bsp.h)(0x68EE5C62)
@ -149,7 +149,7 @@ I (..\User\component\ahrs.h)(0x68EE5C62)
I (..\User\device\motor_rm.h)(0x68EE5C18) I (..\User\device\motor_rm.h)(0x68EE5C18)
I (..\User\device\motor.h)(0x68EE5C18) I (..\User\device\motor.h)(0x68EE5C18)
I (..\User\device\device.h)(0x68EE5C63) I (..\User\device\device.h)(0x68EE5C63)
F (../Core/Src/can.c)(0x68EE5A24)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/can.o -MD) F (../Core/Src/can.c)(0x68F4EE3C)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/can.o -MD)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52)
@ -324,7 +324,7 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68C65E52)
F (../Core/Src/stm32f4xx_it.c)(0x68EE5D60)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/stm32f4xx_it.o -MD) F (../Core/Src/stm32f4xx_it.c)(0x68F4EEE9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/stm32f4xx_it.o -MD)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h)(0x68C65E52)
I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68EE5A28) I (..\Core\Inc\stm32f4xx_hal_conf.h)(0x68EE5A28)
@ -358,7 +358,7 @@ I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_spi.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_tim_ex.h)(0x68C65E52)
I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68C65E52) I (..\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal_uart.h)(0x68C65E52)
I (..\Core\Inc\stm32f4xx_it.h)(0x68EE5D60) I (..\Core\Inc\stm32f4xx_it.h)(0x68F4EEE9)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\FreeRTOS.h)(0x68C65D59)
I (..\Core\Inc\FreeRTOSConfig.h)(0x68EE5A24) I (..\Core\Inc\FreeRTOSConfig.h)(0x68EE5A24)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\projdefs.h)(0x68C65D59)
@ -1963,10 +1963,10 @@ I (D:\keil\ARM\ARMCLANG\include\stdbool.h)(0x588CAFD2)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2)
I (D:\keil\ARM\ARMCLANG\include\string.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\string.h)(0x588CAFD2)
F (..\User\module\config.c)(0x68DDDFDF)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/config.o -MD) F (..\User\module\config.c)(0x68F78F25)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/config.o -MD)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
@ -2025,7 +2025,7 @@ I (..\User\component\ahrs.h)(0x68EE5C62)
I (..\User\device\motor_rm.h)(0x68EE5C18) I (..\User\device\motor_rm.h)(0x68EE5C18)
I (..\User\device\motor.h)(0x68EE5C18) I (..\User\device\motor.h)(0x68EE5C18)
I (..\User\device\device.h)(0x68EE5C63) I (..\User\device\device.h)(0x68EE5C63)
F (..\User\module\chassis.c)(0x68F22AA4)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/chassis.o -MD) F (..\User\module\chassis.c)(0x68F647A9)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/chassis.o -MD)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2)
I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stddef.h)(0x588CAFD2)
@ -2083,7 +2083,7 @@ I (D:\keil\ARM\ARMCLANG\include\math.h)(0x58A47FFE)
I (..\User\device\motor_rm.h)(0x68EE5C18) I (..\User\device\motor_rm.h)(0x68EE5C18)
I (..\User\device\motor.h)(0x68EE5C18) I (..\User\device\motor.h)(0x68EE5C18)
I (..\User\device\device.h)(0x68EE5C63) I (..\User\device\device.h)(0x68EE5C63)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\component\filter.h)(0x68EE5C62) I (..\User\component\filter.h)(0x68EE5C62)
I (..\User\component\mixer.h)(0x68EE5C62) I (..\User\component\mixer.h)(0x68EE5C62)
I (..\User\component\pid.h)(0x68EE5C62) I (..\User\component\pid.h)(0x68EE5C62)
@ -2102,7 +2102,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68C65D59
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
@ -2166,7 +2166,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68C65D59
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
@ -2214,7 +2214,7 @@ I (..\User\component\ahrs.h)(0x68EE5C62)
I (..\User\device\motor_rm.h)(0x68EE5C18) I (..\User\device\motor_rm.h)(0x68EE5C18)
I (..\User\device\motor.h)(0x68EE5C18) I (..\User\device\motor.h)(0x68EE5C18)
I (..\User\device\device.h)(0x68EE5C63) I (..\User\device\device.h)(0x68EE5C63)
F (..\User\task\test.c)(0x68EE59B2)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/test.o -MD) F (..\User\task\test.c)(0x68F4E778)(-xc -std=c99 --target=arm-arm-none-eabi -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard -c -fno-rtti -funsigned-char -fshort-enums -fshort-wchar -D__MICROLIB -gdwarf-3 -O3 -ffunction-sections -Wno-packed -Wno-missing-variable-declarations -Wno-missing-prototypes -Wno-missing-noreturn -Wno-sign-conversion -Wno-nonportable-include-path -Wno-reserved-id-macro -Wno-unused-macros -Wno-documentation-unknown-command -Wno-documentation -Wno-license-management -Wno-parentheses-equality -I ../Core/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc -I ../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy -I ../Middlewares/Third_Party/FreeRTOS/Source/include -I ../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2 -I ../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F -I ../Drivers/CMSIS/Device/ST/STM32F4xx/Include -I ../Drivers/CMSIS/Include -I ../User -I./RTE/_zzzzh -ID:/keil/ARM/PACK/ARM/CMSIS/5.0.1/CMSIS/Include -ID:/keil/ARM/PACK/Keil/STM32F4xx_DFP/2.14.0/Drivers/CMSIS/Device/ST/STM32F4xx/Include -D__UVISION_VERSION="524" -D_RTE_ -DSTM32F407xx -DUSE_HAL_DRIVER -DSTM32F407xx -o zzzzh/test.o -MD)
I (..\User\task\user_task.h)(0x68ECF321) I (..\User\task\user_task.h)(0x68ECF321)
I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\CMSIS_RTOS_V2\cmsis_os2.h)(0x68C65D59)
I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2) I (D:\keil\ARM\ARMCLANG\include\stdint.h)(0x588CAFD2)
@ -2229,7 +2229,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68C65D59
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)
@ -2293,7 +2293,7 @@ I (..\Middlewares\Third_Party\FreeRTOS\Source\include\mpu_wrappers.h)(0x68C65D59
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\task.h)(0x68C65D59)
I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59) I (..\Middlewares\Third_Party\FreeRTOS\Source\include\list.h)(0x68C65D59)
I (..\User\module\config.h)(0x68DCDCE8) I (..\User\module\config.h)(0x68DCDCE8)
I (..\User\module\chassis.h)(0x68ECF095) I (..\User\module\chassis.h)(0x68F49369)
I (..\User\bsp\can.h)(0x68EE5C62) I (..\User\bsp\can.h)(0x68EE5C62)
I (..\Core\Inc\can.h)(0x68EE5A24) I (..\Core\Inc\can.h)(0x68EE5A24)
I (..\Core\Inc\main.h)(0x68EE5A28) I (..\Core\Inc\main.h)(0x68EE5A28)

View File

@ -19,8 +19,10 @@
static int8_t Chassis_SetMode(Chassis_t *c, Chassis_Mode_t mode, uint32_t now) { static int8_t Chassis_SetMode(Chassis_t *c, Chassis_Mode_t mode, uint32_t now) {
if (!c) return CHASSIS_ERR_NULL; if (!c)
if (mode == c->mode) return CHASSIS_OK; return CHASSIS_ERR_NULL;
if (mode == c->mode)
return CHASSIS_OK;
if (mode == CHASSIS_MODE_ROTOR && c->mode != CHASSIS_MODE_ROTOR) { if (mode == CHASSIS_MODE_ROTOR && c->mode != CHASSIS_MODE_ROTOR) {
srand(now); srand(now);
@ -47,13 +49,11 @@ static float Chassis_CalcWz(const float min, const float max, uint32_t now) {
int8_t Chassis_Init(Chassis_t *c, const Chassis_Params_t *param, int8_t Chassis_Init(Chassis_t *c, const Chassis_Params_t *param,
AHRS_Eulr_t *mech_zero, float target_freq) { AHRS_Eulr_t *mech_zero, float target_freq) {
if (!c) return CHASSIS_ERR_NULL; if (!c) return CHASSIS_ERR_NULL;
BSP_CAN_Init();
c->param = param; c->param = param;
c->mode = CHASSIS_MODE_RELAX; c->mode = CHASSIS_MODE_RELAX;
c->mech_zero = *mech_zero;
c->feedback.imu.eulr = *mech_zero;
c->mech_zero = *mech_zero;
c->feedback.imu.eulr = *mech_zero;
if (param->reverse.yaw) { if (param->reverse.yaw) {
CircleReverse(&(c->mech_zero.yaw)); CircleReverse(&(c->mech_zero.yaw));
@ -95,24 +95,23 @@ if (param->reverse.yaw) {
PID_Init(&c->pid.motor[i], KPID_MODE_NO_D, target_freq, &param->pid.motor_pid_param); PID_Init(&c->pid.motor[i], KPID_MODE_NO_D, target_freq, &param->pid.motor_pid_param);
LowPassFilter2p_Init(&c->filter.in[i], target_freq, param->low_pass_cutoff_freq.in); LowPassFilter2p_Init(&c->filter.in[i], target_freq, param->low_pass_cutoff_freq.in);
LowPassFilter2p_Init(&c->filter.out[i], target_freq, param->low_pass_cutoff_freq.out); LowPassFilter2p_Init(&c->filter.out[i], target_freq, param->low_pass_cutoff_freq.out);
c->feedback.motor[i].rotor_speed = 0;
c->feedback.motor[i].torque_current = 0;
c->feedback.motor[i].rotor_abs_angle = 0;
c->feedback.motor[i].temp = 0;
} }
PID_Init(&c->pid.follow, KPID_MODE_NO_D, target_freq, &param->pid.follow_pid_param); PID_Init(&c->pid.follow, KPID_MODE_NO_D, target_freq, &param->pid.follow_pid_param);
Mixer_Init(&c->mixer, mixer_mode); Mixer_Init(&c->mixer, mixer_mode);
c->move_vec.vx = c->move_vec.vy = c->move_vec.wz = 0.0f; c->move_vec.vx = c->move_vec.vy = c->move_vec.wz = 0.0f;
for (uint8_t i = 0; i < c->num_wheel; i++) {
c->feedback.motor[i].rotor_speed = 0;
c->feedback.motor[i].torque_current = 0;
c->feedback.motor[i].rotor_abs_angle = 0;
c->feedback.motor[i].temp = 0;
}
for (uint8_t i = 0; i < c->num_wheel; i++) { for (uint8_t i = 0; i < c->num_wheel; i++) {
c->out.motor[i] = 0.0f; c->out.motor[i] = 0.0f;
} }
for (int i = 0; i < c->num_wheel; i++) { for (int i = 0; i < c->num_wheel; i++) {
MOTOR_RM_Register(&(c->param->motor_param[i])); MOTOR_RM_Register(&(c->param->motor_param[i]));
c->motors[i] = MOTOR_RM_GetMotor(&(c->param->motor_param[i]));
} }
return CHASSIS_OK; return CHASSIS_OK;
} }
@ -121,19 +120,20 @@ if (param->reverse.yaw) {
int8_t Chassis_UpdateFeedback(Chassis_t *c, const Chassis_Feedback_t *feedback) { int8_t Chassis_UpdateFeedback(Chassis_t *c, const Chassis_Feedback_t *feedback) {
if (!c || !feedback) return CHASSIS_ERR_NULL; if (!c || !feedback) return CHASSIS_ERR_NULL;
if (c->param->reverse.yaw) { float yaw = c->param->reverse.yaw ? -feedback->imu.eulr.yaw : feedback->imu.eulr.yaw;
c->feedback.imu.eulr.yaw = -feedback->imu.eulr.yaw; while (yaw > M_PI) yaw -= M_2PI;
} else { while (yaw < -M_PI) yaw += M_2PI;
c->feedback.imu.eulr.yaw = feedback->imu.eulr.yaw; c->feedback.imu.eulr.yaw = yaw;
}
for (uint8_t i = 0; i < c->num_wheel; i++) { for (uint8_t i = 0; i < c->num_wheel; i++) {
MOTOR_RM_Update(&(c->param->motor_param[i])); MOTOR_RM_Update(&(c->param->motor_param[i]));
MOTOR_RM_t *rm_motor = c->motors[i]; MOTOR_RM_t *rm_motor = MOTOR_RM_GetMotor(&(c->param->motor_param[i]));
if (rm_motor) { c->motors[i] = rm_motor;
MOTOR_RM_t *rm = c->motors[i];
if (rm_motor != NULL) {
c->feedback.motor[i] = rm_motor->feedback; c->feedback.motor[i] = rm_motor->feedback;
} }else
else
{ {
return CHASSIS_ERR_NULL; return CHASSIS_ERR_NULL;
} }
@ -148,11 +148,11 @@ int8_t Chassis_Control(Chassis_t *c, const ChassisCmd_t *c_cmd, uint32_t now) {
c->dt = (float)(now - c->last_wakeup) / 1000.0f; c->dt = (float)(now - c->last_wakeup) / 1000.0f;
c->last_wakeup = now; c->last_wakeup = now;
if (!isfinite(c->dt) || c->dt <= 0.0f) { if (!isfinite(c->dt) || c->dt <= 0.0f) {
c->dt = 0.001f; c->dt = 0.001f;
} }
if (c->dt < 0.0005f) c->dt = 0.0005f; if (c->dt < 0.0005f) c->dt = 0.0005f;
if (c->dt > 0.050f) c->dt = 0.050f; if (c->dt > 0.050f) c->dt = 0.050f;
Chassis_SetMode(c, c_cmd->mode, now); Chassis_SetMode(c, c_cmd->mode, now);
@ -180,6 +180,8 @@ if (c->dt > 0.050f) c->dt = 0.050f;
c->move_vec.wz = 0.0f; c->move_vec.wz = 0.0f;
break; break;
case CHASSIS_MODE_OPEN: case CHASSIS_MODE_OPEN:
c->move_vec.wz = c_cmd->ctrl_vec.wz;
break;
case CHASSIS_MODE_FOLLOW_GIMBAL: case CHASSIS_MODE_FOLLOW_GIMBAL:
c->move_vec.wz = PID_Calc(&c->pid.follow, c->mech_zero.yaw, c->feedback.imu.eulr.yaw, 0.0f, c->dt); c->move_vec.wz = PID_Calc(&c->pid.follow, c->mech_zero.yaw, c->feedback.imu.eulr.yaw, 0.0f, c->dt);
break; break;
@ -192,13 +194,13 @@ if (c->dt > 0.050f) c->dt = 0.050f;
break; break;
} }
Mixer_Apply(&c->mixer, &c->move_vec, c->setpoint.motor_rpm, c->num_wheel, 7000.0f); Mixer_Apply(&c->mixer, &c->move_vec, c->setpoint.motor_rpm, c->num_wheel, 3000.0f);
for (uint8_t i = 0; i < c->num_wheel; i++) { for (uint8_t i = 0; i < c->num_wheel; i++) {
float rf = c->setpoint.motor_rpm[i];
float fb = LowPassFilter2p_Apply(&c->filter.in[i], (float)c->feedback.motor[i].rotor_speed); float fb = LowPassFilter2p_Apply(&c->filter.in[i], (float)c->feedback.motor[i].rotor_speed);
float out_current = 0.0f; float out_current = PID_Calc(&c->pid.motor[i], rf, fb, 0.0f, c->dt);
switch (c->mode) { switch (c->mode) {
case CHASSIS_MODE_BREAK: case CHASSIS_MODE_BREAK:
case CHASSIS_MODE_FOLLOW_GIMBAL: case CHASSIS_MODE_FOLLOW_GIMBAL:
@ -208,7 +210,7 @@ if (c->dt > 0.050f) c->dt = 0.050f;
out_current = PID_Calc(&c->pid.motor[i], c->setpoint.motor_rpm[i], fb, 0.0f, c->dt); out_current = PID_Calc(&c->pid.motor[i], c->setpoint.motor_rpm[i], fb, 0.0f, c->dt);
break; break;
case CHASSIS_MODE_OPEN: case CHASSIS_MODE_OPEN:
out_current = c->setpoint.motor_rpm[i] / 9000.0f; out_current = c->setpoint.motor_rpm[i] / 3000.0f;
break; break;
case CHASSIS_MODE_RELAX: case CHASSIS_MODE_RELAX:
out_current = 0.0f; out_current = 0.0f;
@ -216,9 +218,8 @@ if (c->dt > 0.050f) c->dt = 0.050f;
} }
out_current = LowPassFilter2p_Apply(&c->filter.out[i], out_current); c->out.motor[i] = LowPassFilter2p_Apply(&c->filter.out[i], out_current);
Clip(&c->out.motor[i], -c->param->limit.max_current, c->param->limit.max_current);
c->out.motor[i] = out_current;
} }
@ -226,7 +227,8 @@ if (c->dt > 0.050f) c->dt = 0.050f;
} }
void Chassis_Output(Chassis_t *c) { void Chassis_Output(Chassis_t *c) {
if (!c) return; if (!c)
return;
//ÿ¸öµç»úÄ¿±êÊä³ö //ÿ¸öµç»úÄ¿±êÊä³ö
for (uint8_t i = 0; i < c->num_wheel; i++) { for (uint8_t i = 0; i < c->num_wheel; i++) {
@ -240,7 +242,6 @@ void Chassis_Output(Chassis_t *c) {
MOTOR_RM_t *rm = c->motors[i]; MOTOR_RM_t *rm = c->motors[i];
if (rm) { if (rm) {
MOTOR_RM_Ctrl(&rm->param); MOTOR_RM_Ctrl(&rm->param);
break;
} }
} }
} }

View File

@ -23,6 +23,7 @@ extern "C" {
#define CHASSIS_ERR_MODE (-3) /* 运行时出配置了错误的ChassisMode_t */ #define CHASSIS_ERR_MODE (-3) /* 运行时出配置了错误的ChassisMode_t */
#define CHASSIS_ERR_TYPE (-4) /* 运行时出配置了错误的Chassis_Type_t */ #define CHASSIS_ERR_TYPE (-4) /* 运行时出配置了错误的Chassis_Type_t */
#define MAX_MOTOR_CURRENT 20.0f
/* 底盘控制模式 */ /* 底盘控制模式 */
typedef enum { typedef enum {
CHASSIS_MODE_RELAX, /* 放松模式,电机不输出。一般情况底盘初始化之后的模式 */ CHASSIS_MODE_RELAX, /* 放松模式,电机不输出。一般情况底盘初始化之后的模式 */
@ -52,7 +53,7 @@ typedef struct {
typedef struct { typedef struct {
float max; float max;
float min; float min;
} Chassis_Limit_t;//移植云台的代码 } Chassis_Limit_t;
/* 底盘类型(底盘的物理设计) */ /* 底盘类型(底盘的物理设计) */
typedef enum { typedef enum {
@ -85,7 +86,10 @@ typedef struct {
struct { struct {
bool yaw; bool yaw;
} reverse; } reverse;
struct {
float max_vx, max_vy, max_wz;
float max_current;
} limit;
} Chassis_Params_t; } Chassis_Params_t;
typedef struct { typedef struct {
@ -136,11 +140,9 @@ typedef struct {
KPID_t follow; /* 跟随云台用的PID */ KPID_t follow; /* 跟随云台用的PID */
} pid; } pid;
// struct { struct {
// Chassis_Limit_t vx; // ?????? Chassis_Limit_t vx, vy, wz;
// Chassis_Limit_t vy; // ?????? } limit;
// Chassis_Limit_t wz; // ?z???????
//} limit;
/* 滤波器 */ /* 滤波器 */
struct { struct {
@ -226,6 +228,7 @@ void Chassis_ResetOutput(Chassis_t *c);
*/ */
//void Chassis_DumpUI(const Chassis_t *c, Referee_ChassisUI_t *ui); //void Chassis_DumpUI(const Chassis_t *c, Referee_ChassisUI_t *ui);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -26,51 +26,55 @@ Config_RobotParam_t robot_config = {
.can = BSP_CAN_1, .can = BSP_CAN_1,
.id = 0x201, .id = 0x201,
.module = MOTOR_M3508, .module = MOTOR_M3508,
.reverse = false .reverse = false,
.gear = true
}, },
{ {
.can = BSP_CAN_1, .can = BSP_CAN_1,
.id = 0x202, .id = 0x202,
.module = MOTOR_M3508, .module = MOTOR_M3508,
.reverse = false .reverse = false,
.gear = true
}, },
{ {
.can = BSP_CAN_1, .can = BSP_CAN_1,
.id = 0x203, .id = 0x203,
.module = MOTOR_M3508, .module = MOTOR_M3508,
.reverse = false .reverse = false,
.gear = true
}, },
{ {
.can = BSP_CAN_1, .can = BSP_CAN_1,
.id = 0x204, .id = 0x204,
.module = MOTOR_M3508, .module = MOTOR_M3508,
.reverse = false .reverse = false,
.gear = true
}, },
}, },
.type = CHASSIS_TYPE_OMNI_PLUS,
/* PID ?? */ /* PID ?? */
.pid = { .pid = {
/* ????/??? PID */ /* ????/??? PID */
.motor_pid_param = { .motor_pid_param = {
.k = 0.001f, .k = 0.001f,
.p = 8.0f, .p = 0.01f,
.i = 0.1f, .i = 0.01f,
.d = 0.5f, .d = 0.0f,
.i_limit = 2000.0f, .i_limit = 1.0f,
.out_limit = 16000.0f, .out_limit = 1.0f,
.d_cutoff_freq = 100.0f, .d_cutoff_freq = -1.0f,
.range = -1.0f, .range = -1.0f,
}, },
/* ?????????? */ /* ?????????? */
.follow_pid_param = { .follow_pid_param = {
.k = 0.5f, .k = 0.5f,
.p = 6.0f, .p = 1.0f,
.i = 0.0f, .i = 0.0f,
.d = 0.2f, .d = 0.0f,
.i_limit = 1.0f, .i_limit = 1.0f,
.out_limit = 2.0f, .out_limit = 1.0f,
.d_cutoff_freq = 30.0f, .d_cutoff_freq = -1.0f,
.range = M_2PI, .range = M_2PI,
}, },
}, },
@ -84,6 +88,12 @@ Config_RobotParam_t robot_config = {
/* ???? */ /* ???? */
.reverse = { .reverse = {
.yaw = true, .yaw = true,
},
.limit = {
.max_vx = 3.0f, // ?????????????
.max_vy = 3.0f,
.max_wz = 2.0f, // rad/s ???
.max_current = 16000.0f // ???????????(DJI ?? ±16384)
}, },
}, },
}; };

View File

@ -28,53 +28,104 @@ static AHRS_Eulr_t mech_zero = {0}; // 机械零位(初始 yaw
/* Private function --------------------------------------------------------- */ /* Private function --------------------------------------------------------- */
/* Exported functions ------------------------------------------------------- */ /* Exported functions ------------------------------------------------------- */
//void Task_test(void *argument) {
// (void)argument; /* 未使用argument消除警告 */
//
// /* 计算任务运行到指定频率需要等待的tick数 */
// const uint32_t delay_tick = osKernelGetTickFreq() / TEST_FREQ;
// osDelay(TEST_INIT_DELAY); /* 延时一段时间再开启任务 */
// uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */
// /* USER CODE INIT BEGIN */
// Config_RobotParam_t *cfg = Config_GetRobotParam();
// Chassis_Init(&chassis, &Config_GetRobotParam()->chassis_param, &mech_zero, TEST_FREQ);
//
// bool mech_zero_locked = false; // 首次 IMU 到来后只锁一次
// // 默认命令:安全状态
// chassis_cmd.mode = CHASSIS_MODE_RELAX;
// chassis_cmd.ctrl_vec.vx = 0.0f;
// chassis_cmd.ctrl_vec.vy = 0.0f;
// chassis_cmd.ctrl_vec.wz = 0.0f;
//// /* USER CODE INIT END */
//
// while (1) {
// tick += delay_tick; /* 计算下一个唤醒时刻 */
// /* USER CODE BEGIN */
// if (osMessageQueueGet(task_runtime.msgq.Chassis_imu, &chassis_imu, NULL, 0) == osOK) {
// chassis_fb.imu = chassis_imu;
// chassis.feedback.imu = chassis_imu;
// if (!mech_zero_locked) {
// mech_zero.yaw = chassis_imu.eulr.yaw; // 只在需要“上电即定零”时保留
// mech_zero_locked = true;
// }
//}
////if(osMessageQueueGet(task_runtime.msgq.Chassis_cmd, &chassis_cmd, NULL, 0) == osOK) {
////
////}
// Chassis_UpdateFeedback(&chassis, &chassis_fb);
// // 构造底盘指令
// chassis_cmd.mode = CHASSIS_MODE_FOLLOW_GIMBAL;
// // 控制计算
// Chassis_Control(&chassis, &chassis_cmd, osKernelGetTickCount());
// // 输出电流到电机
// Chassis_Output(&chassis);
//// /* USER CODE END */
// osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
// }
//
//}
void Task_test(void *argument) { void Task_test(void *argument) {
(void)argument; /* 未使用argument消除警告 */ (void)argument;
/* 以 TEST_FREQ 定频运行 */
/* 计算任务运行到指定频率需要等待的tick数 */
const uint32_t delay_tick = osKernelGetTickFreq() / TEST_FREQ; const uint32_t delay_tick = osKernelGetTickFreq() / TEST_FREQ;
osDelay(TEST_INIT_DELAY);
osDelay(TEST_INIT_DELAY); /* 延时一段时间再开启任务 */ uint32_t tick = osKernelGetTickCount();
uint32_t tick = osKernelGetTickCount(); /* 控制任务运行频率的计时 */ /* === 初始化底盘 === */
/* USER CODE INIT BEGIN */
Config_RobotParam_t *cfg = Config_GetRobotParam(); Config_RobotParam_t *cfg = Config_GetRobotParam();
Chassis_Init(&chassis, &Config_GetRobotParam()->chassis_param, &mech_zero, TEST_FREQ); Chassis_Init(&chassis, &cfg->chassis_param, &mech_zero, (float)TEST_FREQ);
bool mech_zero_locked = false; // 首次 IMU 到来后只锁一次 /* 默认安全命令 */
// 默认命令:安全状态
chassis_cmd.mode = CHASSIS_MODE_RELAX; chassis_cmd.mode = CHASSIS_MODE_RELAX;
chassis_cmd.ctrl_vec.vx = 0.0f; chassis_cmd.ctrl_vec.vx = 0.0f;
chassis_cmd.ctrl_vec.vy = 0.0f; chassis_cmd.ctrl_vec.vy = 0.0f;
chassis_cmd.ctrl_vec.wz = 0.0f; chassis_cmd.ctrl_vec.wz = 0.0f;
// /* USER CODE INIT END */
bool mech_zero_locked = false;
while (1) { while (1) {
tick += delay_tick; /* 计算下一个唤醒时刻 */ tick += delay_tick;
/* USER CODE BEGIN */
/* 1) 非阻塞取 IMU如果来了就更新没来就用上一帧 */
if (osMessageQueueGet(task_runtime.msgq.Chassis_imu, &chassis_imu, NULL, 0) == osOK) { if (osMessageQueueGet(task_runtime.msgq.Chassis_imu, &chassis_imu, NULL, 0) == osOK) {
chassis_fb.imu = chassis_imu; chassis_fb.imu = chassis_imu;
chassis.feedback.imu = chassis_imu; chassis.feedback.imu = chassis_imu; // 兼容你在其他处直接读 chassis.feedback 的用法
if (!mech_zero_locked) { if (!mech_zero_locked) {
mech_zero.yaw = chassis_imu.eulr.yaw; // 只在需要“上电即定零”时保留 mech_zero.yaw = chassis_imu.eulr.yaw; // 首帧锁零(按需保留)
mech_zero_locked = true; mech_zero_locked = true;
} }
}
if(osMessageQueueGet(task_runtime.msgq.Chassis_cmd, &chassis_cmd, NULL, 0) == osOK) {
}
Chassis_UpdateFeedback(&chassis, &chassis_fb);
// 构造底盘指令
// chassis_cmd.mode = CHASSIS_MODE_FOLLOW_GIMBAL;
// 控制计算
Chassis_Control(&chassis, &chassis_cmd, osKernelGetTickCount());
// 输出电流到电机
Chassis_Output(&chassis);
// /* USER CODE END */
osDelayUntil(tick); /* 运行结束,等待下一次唤醒 */
} }
/* 2) 免遥控:设定固定运动指令(独立模式,不跟随云台) */
chassis_cmd.mode = CHASSIS_MODE_INDEPENDENT;
chassis_cmd.ctrl_vec.vx = 1.0f;
chassis_cmd.ctrl_vec.vy = 0.0f;
chassis_cmd.ctrl_vec.wz = 0.0f;
/* 3) 更新反馈 → 控制 → 输出 */
Chassis_UpdateFeedback(&chassis, &chassis_fb);
Chassis_Control(&chassis, &chassis_cmd, osKernelGetTickCount());
Chassis_Output(&chassis);
osDelayUntil(tick);
}
} }

View File

@ -2,18 +2,18 @@
CAD.formats= CAD.formats=
CAD.pinconfig= CAD.pinconfig=
CAD.provider= CAD.provider=
CAN1.BS1=CAN_BS1_6TQ CAN1.BS1=CAN_BS1_10TQ
CAN1.BS2=CAN_BS2_7TQ CAN1.BS2=CAN_BS2_3TQ
CAN1.CalculateBaudRate=857142 CAN1.CalculateBaudRate=1000000
CAN1.CalculateTimeBit=1166 CAN1.CalculateTimeBit=1000
CAN1.CalculateTimeQuantum=83.33333333333334 CAN1.CalculateTimeQuantum=71.42857142857143
CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,BS1,BS2,Prescaler CAN1.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,BS1,BS2,Prescaler
CAN1.Prescaler=3 CAN1.Prescaler=3
CAN2.BS1=CAN_BS1_7TQ CAN2.BS1=CAN_BS1_7TQ
CAN2.BS2=CAN_BS2_6TQ CAN2.BS2=CAN_BS2_6TQ
CAN2.CalculateBaudRate=857142 CAN2.CalculateBaudRate=1000000
CAN2.CalculateTimeBit=1166 CAN2.CalculateTimeBit=1000
CAN2.CalculateTimeQuantum=83.33333333333334 CAN2.CalculateTimeQuantum=71.42857142857143
CAN2.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2 CAN2.IPParameters=CalculateTimeQuantum,CalculateTimeBit,CalculateBaudRate,Prescaler,BS1,BS2
CAN2.Prescaler=3 CAN2.Prescaler=3
Dma.Request0=USART3_RX Dma.Request0=USART3_RX
@ -148,6 +148,7 @@ MxDb.Version=DB.6.0.150
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false\:false
NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.CAN1_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.CAN1_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN1_TX_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN2_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.CAN2_RX0_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.CAN2_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true NVIC.CAN2_RX1_IRQn=true\:5\:0\:false\:false\:true\:true\:true\:true\:true
NVIC.DMA1_Stream1_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
@ -299,37 +300,38 @@ ProjectManager.UAScriptAfterPath=
ProjectManager.UAScriptBeforePath= ProjectManager.UAScriptBeforePath=
ProjectManager.UnderRoot=false ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_CAN1_Init-CAN1-false-HAL-true,5-MX_CAN2_Init-CAN2-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_TIM4_Init-TIM4-false-HAL-true,11-MX_TIM7_Init-TIM7-false-HAL-true,12-MX_TIM10_Init-TIM10-false-HAL-true ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_CAN1_Init-CAN1-false-HAL-true,5-MX_CAN2_Init-CAN2-false-HAL-true,6-MX_USART3_UART_Init-USART3-false-HAL-true,7-MX_USART6_UART_Init-USART6-false-HAL-true,8-MX_SPI1_Init-SPI1-false-HAL-true,9-MX_USART1_UART_Init-USART1-false-HAL-true,10-MX_TIM4_Init-TIM4-false-HAL-true,11-MX_TIM7_Init-TIM7-false-HAL-true,12-MX_TIM10_Init-TIM10-false-HAL-true
RCC.48MHZClocksFreq_Value=36000000 RCC.48MHZClocksFreq_Value=84000000
RCC.AHBFreq_Value=72000000 RCC.AHBFreq_Value=168000000
RCC.APB1CLKDivider=RCC_HCLK_DIV2 RCC.APB1CLKDivider=RCC_HCLK_DIV4
RCC.APB1Freq_Value=36000000 RCC.APB1Freq_Value=42000000
RCC.APB1TimFreq_Value=72000000 RCC.APB1TimFreq_Value=84000000
RCC.APB2Freq_Value=72000000 RCC.APB2CLKDivider=RCC_HCLK_DIV2
RCC.APB2TimFreq_Value=72000000 RCC.APB2Freq_Value=84000000
RCC.CortexFreq_Value=72000000 RCC.APB2TimFreq_Value=168000000
RCC.EthernetFreq_Value=72000000 RCC.CortexFreq_Value=168000000
RCC.FCLKCortexFreq_Value=72000000 RCC.EthernetFreq_Value=168000000
RCC.FCLKCortexFreq_Value=168000000
RCC.FamilyName=M RCC.FamilyName=M
RCC.HCLKFreq_Value=72000000 RCC.HCLKFreq_Value=168000000
RCC.HSE_VALUE=12000000 RCC.HSE_VALUE=12000000
RCC.HSI_VALUE=16000000 RCC.HSI_VALUE=16000000
RCC.I2SClocksFreq_Value=192000000 RCC.I2SClocksFreq_Value=192000000
RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSE_VALUE,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VcooutputI2S
RCC.LSE_VALUE=32768 RCC.LSE_VALUE=32768
RCC.LSI_VALUE=32000 RCC.LSI_VALUE=32000
RCC.MCO2PinFreq_Value=72000000 RCC.MCO2PinFreq_Value=168000000
RCC.PLLCLKFreq_Value=72000000 RCC.PLLCLKFreq_Value=168000000
RCC.PLLM=6 RCC.PLLM=6
RCC.PLLN=72 RCC.PLLN=168
RCC.PLLQCLKFreq_Value=36000000 RCC.PLLQCLKFreq_Value=84000000
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
RCC.RTCFreq_Value=32000 RCC.RTCFreq_Value=32000
RCC.RTCHSEDivFreq_Value=6000000 RCC.RTCHSEDivFreq_Value=6000000
RCC.SYSCLKFreq_VALUE=72000000 RCC.SYSCLKFreq_VALUE=168000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.VCOI2SOutputFreq_Value=384000000 RCC.VCOI2SOutputFreq_Value=384000000
RCC.VCOInputFreq_Value=2000000 RCC.VCOInputFreq_Value=2000000
RCC.VCOOutputFreq_Value=144000000 RCC.VCOOutputFreq_Value=336000000
RCC.VcooutputI2S=192000000 RCC.VcooutputI2S=192000000
SH.GPXTI0.0=GPIO_EXTI0 SH.GPXTI0.0=GPIO_EXTI0
SH.GPXTI0.ConfNb=1 SH.GPXTI0.ConfNb=1
@ -344,7 +346,7 @@ SH.S_TIM4_CH3.ConfNb=1
SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16 SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16
SPI1.CLKPhase=SPI_PHASE_2EDGE SPI1.CLKPhase=SPI_PHASE_2EDGE
SPI1.CLKPolarity=SPI_POLARITY_LOW SPI1.CLKPolarity=SPI_POLARITY_LOW
SPI1.CalculateBaudRate=4.5 MBits/s SPI1.CalculateBaudRate=5.25 MBits/s
SPI1.Direction=SPI_DIRECTION_2LINES SPI1.Direction=SPI_DIRECTION_2LINES
SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,CLKPhase,CLKPolarity SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler,CLKPhase,CLKPolarity
SPI1.Mode=SPI_MODE_MASTER SPI1.Mode=SPI_MODE_MASTER