Compare commits

...

9 Commits
xiaomi ... main

30 changed files with 13256 additions and 190 deletions

View File

@ -80,8 +80,7 @@ int main(void)
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. * HAL_Init();
/* USER CODE BEGIN Init */
@ -96,6 +95,7 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_SPI1_Init();
MX_TIM4_Init();

View File

@ -103,7 +103,7 @@ void MX_USART6_UART_Init(void)
/* USER CODE END USART6_Init 1 */
huart6.Instance = USART6;
huart6.Init.BaudRate = 115200;
huart6.Init.BaudRate = 4000000;
huart6.Init.WordLength = UART_WORDLENGTH_8B;
huart6.Init.StopBits = UART_STOPBITS_1;
huart6.Init.Parity = UART_PARITY_NONE;

313
MDK-ARM/.vscode/c_cpp_properties.json vendored Normal file
View File

@ -0,0 +1,313 @@
{
"configurations": [
{
"name": "windows-gcc-x64",
"includePath": [
"${workspaceFolder}/**",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Core\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\bsp",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\device",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\task",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\Algorithm",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\Module",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\MDK-ARM",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Lib\\ARM",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Core\\Src",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Src",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang",
"${default}"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F407xx",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "windows-gcc-x64",
"cStandard": "${default}",
"cppStandard": "${default}",
"compilerPath": "C:/vspack/mingw64/bin/gcc.exe"
},
{
"name": "ELE_CHASSIS",
"includePath": [
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Core\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)\\Drivers\\CMSIS\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(2.16AGV)",
"${default}",
"${workspaceFolder}/**"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F407xx",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
},
{
"name": "AUTO_CHASSIS",
"includePath": [
"d:\\Desktop\\r2\\R2_UP\\Core\\Inc",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\CMSIS\\Include",
"d:\\Desktop\\r2\\R2_UP\\User",
"d:\\Desktop\\r2\\R2_UP\\User\\bsp",
"d:\\Desktop\\r2\\R2_UP\\User\\device",
"d:\\Desktop\\r2\\R2_UP\\User\\task",
"d:\\Desktop\\r2\\R2_UP\\User\\Algorithm",
"d:\\Desktop\\r2\\R2_UP\\User\\Module",
"d:\\Desktop\\r2\\R2_UP\\MDK-ARM",
"d:\\Desktop\\r2\\R2_UP\\USB_DEVICE\\App",
"d:\\Desktop\\r2\\R2_UP\\USB_DEVICE\\Target",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\ST\\STM32_USB_Device_Library\\Core\\Inc",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\ST\\STM32_USB_Device_Library\\Class\\CDC\\Inc",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\CMSIS\\Lib\\ARM",
"d:\\Desktop\\r2\\R2_UP\\Core\\Src",
"d:\\Desktop\\r2\\R2_UP\\Drivers\\STM32F4xx_HAL_Driver\\Src",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\Third_Party\\FreeRTOS\\Source",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\ST\\STM32_USB_Device_Library\\Core\\Src",
"d:\\Desktop\\r2\\R2_UP\\Middlewares\\ST\\STM32_USB_Device_Library\\Class\\CDC\\Src"
],
"defines": [
"USE_HAL_DRIVER",
"STM32F407xx",
"__CC_ARM",
"__arm__",
"__align(x)=",
"__ALIGNOF__(x)=",
"__alignof__(x)=",
"__asm(x)=",
"__forceinline=",
"__restrict=",
"__global_reg(n)=",
"__inline=",
"__int64=long long",
"__INTADDR__(expr)=0",
"__irq=",
"__packed=",
"__pure=",
"__smc(n)=",
"__svc(n)=",
"__svc_indirect(n)=",
"__svc_indirect_r7(n)=",
"__value_in_regs=",
"__weak=",
"__writeonly=",
"__declspec(x)=",
"__attribute__(x)=",
"__nonnull__(x)=",
"__register=",
"__breakpoint(x)=",
"__cdp(x,y,z)=",
"__clrex()=",
"__clz(x)=0U",
"__current_pc()=0U",
"__current_sp()=0U",
"__disable_fiq()=",
"__disable_irq()=",
"__dmb(x)=",
"__dsb(x)=",
"__enable_fiq()=",
"__enable_irq()=",
"__fabs(x)=0.0",
"__fabsf(x)=0.0f",
"__force_loads()=",
"__force_stores()=",
"__isb(x)=",
"__ldrex(x)=0U",
"__ldrexd(x)=0U",
"__ldrt(x)=0U",
"__memory_changed()=",
"__nop()=",
"__pld(...)=",
"__pli(...)=",
"__qadd(x,y)=0",
"__qdbl(x)=0",
"__qsub(x,y)=0",
"__rbit(x)=0U",
"__rev(x)=0U",
"__return_address()=0U",
"__ror(x,y)=0U",
"__schedule_barrier()=",
"__semihost(x,y)=0",
"__sev()=",
"__sqrt(x)=0.0",
"__sqrtf(x)=0.0f",
"__ssat(x,y)=0",
"__strex(x,y)=0U",
"__strexd(x,y)=0",
"__strt(x,y)=",
"__swp(x,y)=0U",
"__usat(x,y)=0U",
"__wfe()=",
"__wfi()=",
"__yield()=",
"__vfp_status(x,y)=0"
],
"intelliSenseMode": "${default}"
}
],
"version": 4
}

477
MDK-ARM/.vscode/keil-assistant.log vendored Normal file
View File

@ -0,0 +1,477 @@
[info] Log at : 2024/1/8|19:32:39|GMT+0800
[info] Log at : 2024/1/8|20:02:44|GMT+0800
[info] Log at : 2024/1/8|20:04:27|GMT+0800
[info] Log at : 2024/1/9|15:26:47|GMT+0800
[info] Log at : 2024/1/9|15:46:56|GMT+0800
[info] Log at : 2024/1/9|15:48:33|GMT+0800
[info] Log at : 2024/1/9|18:32:19|GMT+0800
[info] Log at : 2024/1/9|20:07:50|GMT+0800
[info] Log at : 2024/1/9|20:37:25|GMT+0800
[info] Log at : 2024/1/9|21:16:25|GMT+0800
[info] Log at : 2024/1/10|10:34:29|GMT+0800
[info] Log at : 2024/1/10|11:15:48|GMT+0800
[info] Log at : 2024/1/10|17:51:38|GMT+0800
[info] Log at : 2024/1/11|15:04:55|GMT+0800
[info] Log at : 2024/1/12|15:50:07|GMT+0800
[info] Log at : 2024/1/12|15:54:52|GMT+0800
[info] Log at : 2024/1/13|10:59:53|GMT+0800
[info] Log at : 2024/1/13|11:06:05|GMT+0800
[info] Log at : 2024/1/13|11:06:37|GMT+0800
[info] Log at : 2024/1/13|11:08:34|GMT+0800
[info] project closed: ELE_CHASSIS
[info] Log at : 2024/1/13|14:49:16|GMT+0800
[info] Log at : 2024/1/13|15:37:07|GMT+0800
[info] Log at : 2024/1/15|13:37:27|GMT+0800
[info] Log at : 2024/1/15|14:06:04|GMT+0800
[info] Log at : 2024/1/15|17:24:48|GMT+0800
[info] Log at : 2024/1/15|18:44:11|GMT+0800
[info] Log at : 2024/1/15|23:16:35|GMT+0800
[info] Log at : 2024/1/16|10:02:40|GMT+0800
[info] Log at : 2024/1/16|14:36:24|GMT+0800
[info] Log at : 2024/1/17|10:53:45|GMT+0800
[info] Log at : 2024/1/17|11:45:51|GMT+0800
[info] Log at : 2024/1/17|11:46:17|GMT+0800
[info] Log at : 2024/1/17|12:08:23|GMT+0800
[info] Log at : 2024/1/17|12:16:25|GMT+0800
[info] Log at : 2024/1/17|14:52:29|GMT+0800
[info] Log at : 2024/1/17|17:09:27|GMT+0800
[info] Log at : 2024/1/17|17:13:42|GMT+0800
[info] Log at : 2024/1/17|19:41:46|GMT+0800
[info] Log at : 2024/1/17|20:27:42|GMT+0800
[info] Log at : 2024/1/17|20:28:15|GMT+0800
[info] Log at : 2024/1/18|10:32:36|GMT+0800
[info] Log at : 2024/1/18|14:14:26|GMT+0800
[info] Log at : 2024/1/19|11:51:23|GMT+0800
[info] Log at : 2024/1/23|21:44:27|GMT+0800
[info] Log at : 2024/1/24|15:56:41|GMT+0800
[info] Log at : 2024/1/24|16:05:41|GMT+0800
[info] Log at : 2024/1/24|19:41:07|GMT+0800
[info] Log at : 2024/1/26|15:33:20|GMT+0800
[info] Log at : 2024/1/26|21:38:08|GMT+0800
[info] Log at : 2024/1/27|17:19:01|GMT+0800
[info] Log at : 2024/1/28|16:57:50|GMT+0800
[info] Log at : 2024/1/28|19:42:44|GMT+0800
[info] Log at : 2024/1/29|10:28:36|GMT+0800
[info] Log at : 2024/1/29|20:46:07|GMT+0800
[info] Log at : 2024/1/29|22:03:56|GMT+0800
[info] Log at : 2024/1/31|15:33:46|GMT+0800
[info] Log at : 2024/2/1|10:52:47|GMT+0800
[info] Log at : 2024/2/4|19:14:13|GMT+0800
[info] Log at : 2024/2/5|09:17:19|GMT+0800
[info] Log at : 2024/2/5|16:19:37|GMT+0800
[info] Log at : 2024/2/15|18:04:19|GMT+0800
[info] Log at : 2024/2/16|17:16:13|GMT+0800
[info] Log at : 2024/2/16|21:04:52|GMT+0800
[info] Log at : 2024/2/16|21:10:12|GMT+0800
[info] Log at : 2024/2/16|21:34:54|GMT+0800
[info] Log at : 2024/2/17|15:19:18|GMT+0800
[info] Log at : 2024/2/18|10:12:30|GMT+0800
[info] Log at : 2024/2/20|11:49:24|GMT+0800
[info] Log at : 2024/2/22|20:18:56|GMT+0800
[info] Log at : 2024/2/22|23:28:10|GMT+0800
[info] Log at : 2024/2/23|12:33:50|GMT+0800
[info] Log at : 2024/2/23|16:26:59|GMT+0800
[info] Log at : 2024/2/23|19:16:53|GMT+0800
[info] Log at : 2024/2/24|15:35:02|GMT+0800
[info] Log at : 2024/2/24|16:11:45|GMT+0800
[info] Log at : 2024/2/25|22:35:01|GMT+0800
[info] Log at : 2024/2/27|10:51:15|GMT+0800
[info] Log at : 2024/2/28|15:47:11|GMT+0800
[info] Log at : 2024/3/3|19:10:24|GMT+0800
[info] Log at : 2024/3/4|18:24:17|GMT+0800
[info] Log at : 2024/3/13|15:50:37|GMT+0800
[info] Log at : 2024/3/16|21:01:56|GMT+0800
[info] Log at : 2024/3/17|14:27:14|GMT+0800
[info] Log at : 2024/3/17|21:51:08|GMT+0800
[info] Log at : 2024/3/18|19:07:26|GMT+0800
[info] Log at : 2024/3/20|14:07:30|GMT+0800
[info] Log at : 2024/3/21|19:29:10|GMT+0800
[info] Log at : 2024/3/21|19:52:54|GMT+0800
[info] Log at : 2024/3/21|20:43:01|GMT+0800
[info] Log at : 2024/3/21|20:44:21|GMT+0800
[info] Log at : 2024/3/21|22:03:58|GMT+0800
[info] Log at : 2024/3/21|22:05:21|GMT+0800
[info] Log at : 2024/3/26|18:06:39|GMT+0800
[info] Log at : 2024/3/26|18:22:33|GMT+0800
[info] Log at : 2024/3/26|19:31:54|GMT+0800
[info] Log at : 2024/3/27|15:43:40|GMT+0800
[info] Log at : 2024/3/29|18:38:25|GMT+0800
[info] Log at : 2024/3/30|14:45:21|GMT+0800
[info] Log at : 2024/3/30|15:43:58|GMT+0800
[info] Log at : 2024/3/30|18:01:06|GMT+0800
[info] Log at : 2024/3/31|14:40:55|GMT+0800
[info] Log at : 2024/3/31|14:40:58|GMT+0800
[info] Log at : 2024/3/31|15:07:04|GMT+0800
[info] Log at : 2024/3/31|15:07:09|GMT+0800
[info] Log at : 2024/3/31|20:09:45|GMT+0800
[info] Log at : 2024/3/31|21:04:09|GMT+0800
[info] Log at : 2024/4/1|19:20:24|GMT+0800
[info] Log at : 2024/4/1|19:20:27|GMT+0800
[info] Log at : 2024/4/2|21:04:17|GMT+0800
[info] Log at : 2024/4/2|21:04:58|GMT+0800
[info] Log at : 2024/4/2|21:05:02|GMT+0800
[info] Log at : 2024/4/3|00:30:14|GMT+0800
[info] Log at : 2024/4/3|00:31:13|GMT+0800
[info] Log at : 2024/4/3|00:31:18|GMT+0800
[info] Log at : 2024/4/3|20:09:53|GMT+0800
[info] Log at : 2024/4/3|20:23:25|GMT+0800
[info] Log at : 2024/4/3|21:56:06|GMT+0800
[info] Log at : 2024/4/7|19:59:13|GMT+0800
[info] Log at : 2024/4/7|20:02:58|GMT+0800
[info] Log at : 2024/4/7|22:53:43|GMT+0800
[info] Log at : 2024/4/7|23:29:45|GMT+0800
[info] Log at : 2024/4/7|23:30:24|GMT+0800
[info] Log at : 2024/4/8|19:16:21|GMT+0800
[info] Log at : 2024/4/8|22:58:13|GMT+0800
[info] Log at : 2024/4/8|23:39:42|GMT+0800
[info] Log at : 2024/4/9|19:14:07|GMT+0800
[info] Log at : 2024/4/9|20:17:23|GMT+0800
[info] Log at : 2024/4/9|22:58:33|GMT+0800
[info] Log at : 2024/4/10|15:13:08|GMT+0800
[info] Log at : 2024/4/10|19:27:11|GMT+0800
[info] Log at : 2024/4/10|19:52:20|GMT+0800
[info] Log at : 2024/4/10|19:53:18|GMT+0800
[info] Log at : 2024/4/10|23:47:29|GMT+0800
[info] Log at : 2024/4/11|19:16:52|GMT+0800
[info] Log at : 2024/4/11|23:05:51|GMT+0800
[info] Log at : 2024/4/13|12:03:06|GMT+0800
[info] Log at : 2024/4/13|14:30:14|GMT+0800
[info] Log at : 2024/4/13|17:42:39|GMT+0800
[info] Log at : 2024/4/16|22:22:26|GMT+0800
[info] Log at : 2024/4/17|18:03:02|GMT+0800
[info] Log at : 2024/4/19|00:04:34|GMT+0800
[info] Log at : 2024/4/19|18:50:47|GMT+0800
[info] Log at : 2024/4/20|23:07:49|GMT+0800
[info] Log at : 2024/4/21|17:02:18|GMT+0800
[info] Log at : 2024/4/21|23:21:16|GMT+0800
[info] Log at : 2024/4/21|23:22:29|GMT+0800
[info] Log at : 2024/4/22|19:14:03|GMT+0800
[info] Log at : 2024/4/22|23:23:42|GMT+0800
[info] Log at : 2024/4/25|23:22:26|GMT+0800
[info] Log at : 2024/4/28|21:37:51|GMT+0800
[info] Log at : 2024/5/5|14:48:39|GMT+0800
[info] Log at : 2024/5/5|17:16:29|GMT+0800
[info] Log at : 2024/5/5|17:17:56|GMT+0800
[info] Log at : 2024/5/5|17:21:23|GMT+0800
[info] Log at : 2024/5/8|11:12:44|GMT+0800
[info] Log at : 2024/5/23|00:04:21|GMT+0800
[info] Log at : 2024/5/23|00:05:48|GMT+0800
[info] Log at : 2024/5/23|00:06:48|GMT+0800
[info] Log at : 2024/5/23|00:08:36|GMT+0800
[info] Log at : 2024/5/23|15:57:43|GMT+0800
[info] Log at : 2024/5/23|16:04:44|GMT+0800
[info] Log at : 2024/5/27|23:47:58|GMT+0800
[info] Log at : 2024/6/8|14:12:54|GMT+0800
[info] Log at : 2024/6/11|21:40:07|GMT+0800
[info] Log at : 2024/6/12|09:48:55|GMT+0800
[info] Log at : 2024/6/15|17:24:36|GMT+0800
[info] Log at : 2024/6/21|18:44:34|GMT+0800
[info] Log at : 2024/6/23|02:10:29|GMT+0800
[info] Log at : 2024/6/25|09:31:46|GMT+0800
[info] Log at : 2024/6/27|10:28:06|GMT+0800
[info] Log at : 2024/6/27|14:41:54|GMT+0800
[info] Log at : 2024/6/30|17:22:03|GMT+0800
[info] Log at : 2024/7/2|21:55:50|GMT+0800
[info] Log at : 2024/7/6|16:09:38|GMT+0800
[info] Log at : 2024/7/7|19:16:37|GMT+0800
[info] Log at : 2024/7/11|19:36:19|GMT+0800
[info] Log at : 2024/10/22|20:54:24|GMT+0800
[info] Log at : 2024/10/22|20:55:18|GMT+0800
[info] Log at : 2024/11/9|20:02:46|GMT+0800
[info] Log at : 2024/11/10|14:27:12|GMT+0800
[info] Log at : 2024/11/11|19:42:55|GMT+0800
[info] Log at : 2024/11/11|23:52:18|GMT+0800
[info] Log at : 2024/11/12|19:55:50|GMT+0800
[info] Log at : 2024/11/13|14:40:27|GMT+0800
[info] Log at : 2024/11/13|14:54:08|GMT+0800
[info] Log at : 2024/11/13|16:55:35|GMT+0800
[info] Log at : 2024/11/13|21:44:46|GMT+0800
[info] Log at : 2024/11/14|12:32:17|GMT+0800
[info] Log at : 2024/11/14|23:04:18|GMT+0800
[info] Log at : 2024/11/15|18:55:11|GMT+0800
[info] Log at : 2024/11/15|20:36:01|GMT+0800
[info] Log at : 2024/11/16|19:59:50|GMT+0800
[info] Log at : 2024/11/16|22:56:26|GMT+0800
[info] Log at : 2024/11/17|14:59:24|GMT+0800
[info] Log at : 2024/11/18|21:45:57|GMT+0800
[info] Log at : 2024/11/19|21:29:10|GMT+0800
[info] Log at : 2024/11/19|21:33:44|GMT+0800
[info] Log at : 2024/11/21|20:14:02|GMT+0800
[info] Log at : 2024/11/21|21:18:07|GMT+0800
[info] Log at : 2024/11/21|21:44:17|GMT+0800
[info] Log at : 2024/11/21|21:51:28|GMT+0800
[info] Log at : 2024/11/21|21:51:44|GMT+0800
[info] Log at : 2024/11/22|19:30:39|GMT+0800
[info] Log at : 2024/11/22|19:43:18|GMT+0800
[info] Log at : 2024/11/22|19:44:51|GMT+0800
[info] Log at : 2024/11/23|16:53:50|GMT+0800
[info] Log at : 2024/11/23|20:57:18|GMT+0800
[info] Log at : 2024/11/24|15:24:25|GMT+0800
[info] Log at : 2024/11/24|16:44:24|GMT+0800
[info] Log at : 2024/11/24|20:12:21|GMT+0800
[info] Log at : 2024/11/30|15:39:24|GMT+0800
[info] Log at : 2024/11/30|16:11:13|GMT+0800
[info] Log at : 2024/11/30|16:13:53|GMT+0800
[info] Log at : 2024/11/30|16:50:20|GMT+0800
[info] Log at : 2024/11/30|19:22:53|GMT+0800
[info] Log at : 2024/11/30|20:00:54|GMT+0800
[info] Log at : 2024/11/30|20:09:24|GMT+0800
[info] Log at : 2024/12/6|17:39:09|GMT+0800
[info] Log at : 2024/12/6|20:43:23|GMT+0800
[info] Log at : 2024/12/6|20:54:48|GMT+0800
[info] Log at : 2024/12/8|17:22:45|GMT+0800
[info] Log at : 2024/12/8|19:23:34|GMT+0800
[info] Log at : 2025/1/6|21:24:35|GMT+0800
[info] Log at : 2025/1/13|22:47:43|GMT+0800
[info] Log at : 2025/1/13|22:53:23|GMT+0800
Log at : 2025/1/16|20:09:48|GMT+0800
Log at : 2025/2/16|19:35:45|GMT+0800
Log at : 2025/2/16|20:16:53|GMT+0800
Log at : 2025/2/18|16:19:47|GMT+0800
Log at : 2025/2/19|14:09:53|GMT+0800
Log at : 2025/2/20|15:49:08|GMT+0800
Log at : 2025/2/21|21:26:57|GMT+0800
Log at : 2025/2/23|14:39:36|GMT+0800
[info] Log at : 2025/3/5|21:18:28|GMT+0800
[info] Log at : 2025/3/5|21:22:17|GMT+0800
[info] Log at : 2025/3/5|21:36:22|GMT+0800
[info] Log at : 2025/3/5|21:42:18|GMT+0800
[info] Log at : 2025/3/11|21:09:29|GMT+0800

View File

@ -0,0 +1,6 @@
{
"project": {
"name": "593c6fad1b2d09a0b98264505a86eaed",
"activeTargetName": "ELE_CHASSIS"
}
}

24
MDK-ARM/.vscode/launch.json vendored Normal file
View File

@ -0,0 +1,24 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": true,
"cwd": "c:/Users/hanke/Desktop/WaitToImprv/chassis(1.06)AGV待完善)/User/bsp",
"program": "c:/Users/hanke/Desktop/WaitToImprv/chassis(1.06)AGV待完善)/User/bsp/build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

102
MDK-ARM/.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,102 @@
{
"C_Cpp_Runner.cCompilerPath": "gcc",
"C_Cpp_Runner.cppCompilerPath": "g++",
"C_Cpp_Runner.debuggerPath": "gdb",
"C_Cpp_Runner.cStandard": "",
"C_Cpp_Runner.cppStandard": "",
"C_Cpp_Runner.msvcBatchPath": "",
"C_Cpp_Runner.useMsvc": false,
"C_Cpp_Runner.warnings": [
"-Wall",
"-Wextra",
"-Wpedantic",
"-Wshadow",
"-Wformat=2",
"-Wcast-align",
"-Wconversion",
"-Wsign-conversion",
"-Wnull-dereference"
],
"C_Cpp_Runner.msvcWarnings": [
"/W4",
"/permissive-",
"/w14242",
"/w14287",
"/w14296",
"/w14311",
"/w14826",
"/w44062",
"/w44242",
"/w14905",
"/w14906",
"/w14263",
"/w44265",
"/w14928"
],
"C_Cpp_Runner.enableWarnings": true,
"C_Cpp_Runner.warningsAsError": false,
"C_Cpp_Runner.compilerArgs": [],
"C_Cpp_Runner.linkerArgs": [],
"C_Cpp_Runner.includePaths": [
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Core\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Inc",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Inc\\Legacy",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\CMSIS_RTOS_V2",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\RVDS\\ARM_CM4F",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Device\\ST\\STM32F4xx\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Include",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\bsp",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\device",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\task",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\Algorithm",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\User\\Module",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\MDK-ARM",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\CMSIS\\Lib\\ARM",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Core\\Src",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Drivers\\STM32F4xx_HAL_Driver\\Src",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source",
"c:\\Users\\hanke\\Desktop\\WaitToImprv\\chassis(1.06)AGV待完善)\\Middlewares\\Third_Party\\FreeRTOS\\Source\\portable\\MemMang",
"${default}",
"${workspaceFolder}/**"
],
"C_Cpp_Runner.includeSearch": [
"*",
"**/*"
],
"C_Cpp_Runner.excludeSearch": [
"**/build",
"**/build/**",
"**/.*",
"**/.*/**",
"**/.vscode",
"**/.vscode/**"
],
"C_Cpp_Runner.useAddressSanitizer": false,
"C_Cpp_Runner.useUndefinedSanitizer": false,
"C_Cpp_Runner.useLeakSanitizer": false,
"C_Cpp_Runner.showCompilationTime": false,
"C_Cpp_Runner.useLinkTimeOptimization": false,
"C_Cpp_Runner.msvcSecureNoWarnings": false,
"files.associations": {
"chassis.h": "c",
"bmi088.h": "c",
"user_math.h": "c",
"action.h": "c",
"can_use.h": "c",
"user_task.h": "c",
"user_cmsis_os2.h": "c",
"memory": "c",
"string": "c",
"utility": "c",
"xmemory": "c",
"xstring": "c",
"xutility": "c",
"limits": "c",
"gimbal_task.h": "c",
"gimgal.h": "c",
"navi.h": "c",
"map.h": "c"
}
}

109
MDK-ARM/.vscode/uv4.log vendored Normal file
View File

@ -0,0 +1,109 @@
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\keil mdk\ARM\ARMCC\Bin'
Build target 'AUTO_CHASSIS'
Note: source file '..\User\bsp\gpio.c' - object file renamed from 'ELE_CHASSIS\gpio.o' to 'ELE_CHASSIS\gpio_1.o'.Note: source file '..\User\bsp\spi.c' - object file renamed from 'ELE_CHASSIS\spi.o' to 'ELE_CHASSIS\spi_1.o'.assembling startup_stm32f407xx.s...
compiling stm32f4xx_hal_msp.c...
compiling usart.c...
compiling stm32f4xx_hal_pcd.c...
compiling stm32f4xx_hal_pcd_ex.c...
compiling spi.c...
compiling tim.c...
compiling can.c...
compiling dma.c...
compiling stm32f4xx_it.c...
compiling crc.c...
compiling stm32f4xx_ll_usb.c...
compiling gpio.c...
compiling stm32f4xx_hal_rcc.c...
compiling main.c...
compiling freertos.c...
compiling stm32f4xx_hal_cortex.c...
compiling stm32f4xx_hal_pwr.c...
compiling stm32f4xx_hal_rcc_ex.c...
compiling stm32f4xx_hal_dma.c...
compiling stm32f4xx_hal_flash_ramfunc.c...
compiling stm32f4xx_hal_pwr_ex.c...
compiling stm32f4xx_hal_flash_ex.c...
compiling stm32f4xx_hal_flash.c...
compiling stm32f4xx_hal_gpio.c...
compiling croutine.c...
compiling stm32f4xx_hal.c...
compiling event_groups.c...
compiling list.c...
compiling queue.c...
compiling stm32f4xx_hal_exti.c...
compiling stm32f4xx_hal_dma_ex.c...
compiling stm32f4xx_hal_can.c...
compiling stream_buffer.c...
compiling timers.c...
compiling tasks.c...
compiling heap_4.c...
compiling stm32f4xx_hal_crc.c...
compiling port.c...
compiling stm32f4xx_hal_spi.c...
compiling map.c...
compiling bsp_can.c...
compiling system_stm32f4xx.c...
compiling crc16.c...
compiling gpio.c...
compiling stm32f4xx_hal_tim.c...
compiling stm32f4xx_hal_uart.c...
compiling stm32f4xx_hal_tim_ex.c...
compiling config.c...
compiling bsp_delay.c...
compiling delay.c...
compiling pwm.c...
compiling Chassis.c...
compiling spi.c...
compiling bsp_usart.c...
compiling cmsis_os2.c...
compiling led.c...
compiling bsp_buzzer.c...
compiling flash.c...
..\User\bsp\flash.c(20): warning: #29-D: expected an expression
#elif
..\User\bsp\flash.c: 1 warning, 0 errors
compiling kalman.c...
compiling user_task.c...
compiling init.c...
compiling error_detect_task.c...
compiling cmd_task.c...
compiling chassis_task.c...
compiling dr16_task.c...
compiling action_task.c...
compiling atti_esti.c...
compiling can_task.c...
compiling filter.c...
compiling nuc_task.c...
compiling navi_task.c...
compiling ahrs.c...
compiling can_use.c...
compiling pid.c...
compiling cmd.c...
compiling nuc.c...
compiling dr16.c...
compiling vofa.c...
compiling navi.c...
..\User\Algorithm\navi.c(111): warning: #177-D: variable "zArrive" was declared but never referenced
uint16_t xArrive = 0, yArrive = 0, zArrive=0;
..\User\Algorithm\navi.c(130): warning: #550-D: variable "chassis_vx" was set but never used
static fp32 chassis_vx,chassis_vy;//底盘xy分速度
..\User\Algorithm\navi.c(130): warning: #550-D: variable "chassis_vy" was set but never used
static fp32 chassis_vx,chassis_vy;//底盘xy分速度
..\User\Algorithm\navi.c: 3 warnings, 0 errors
compiling usb_device.c...
compiling user_math.c...
compiling Action.c...
compiling bmi088.c...
compiling user_cmsis_os2.c...
compiling LD_remote.c...
compiling usbd_desc.c...
compiling usbd_core.c...
compiling usbd_ioreq.c...
compiling usbd_cdc_if.c...
compiling usbd_cdc.c...
compiling usbd_ctlreq.c...
compiling usbd_conf.c...
linking...
Program Size: Code=75220 RO-data=1400 RW-data=1268 ZI-data=33316
"ELE_CHASSIS\AUTO_CHASSIS.axf" - 0 Error(s), 4 Warning(s).
Build Time Elapsed: 00:00:38

1
MDK-ARM/.vscode/uv4.log.lock vendored Normal file
View File

@ -0,0 +1 @@
2025/2/20 16:57:14

1486
MDK-ARM/AUTO_CHASSIS.uvoptx Normal file

File diff suppressed because it is too large Load Diff

2017
MDK-ARM/AUTO_CHASSIS.uvprojx Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

736
MDK-ARM/IMU.uvoptx Normal file
View File

@ -0,0 +1,736 @@
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
<SchemaVersion>1.0</SchemaVersion>
<Header>### uVision Project, (C) Keil Software</Header>
<Extensions>
<cExt>*.c</cExt>
<aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj; *.o</oExt>
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<nMigrate>0</nMigrate>
</Extensions>
<DaveTm>
<dwLowDateTime>0</dwLowDateTime>
<dwHighDateTime>0</dwHighDateTime>
</DaveTm>
<Target>
<TargetName>IMU</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
<TargetOption>
<CLKADS>12000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
<RunAbUc>0</RunAbUc>
</OPTTT>
<OPTHX>
<HexSelection>1</HexSelection>
<FlashByte>65535</FlashByte>
<HexRangeLowAddress>0</HexRangeLowAddress>
<HexRangeHighAddress>0</HexRangeHighAddress>
<HexOffset>0</HexOffset>
</OPTHX>
<OPTLEX>
<PageWidth>79</PageWidth>
<PageLength>66</PageLength>
<TabStop>8</TabStop>
<ListingPath></ListingPath>
</OPTLEX>
<ListingPage>
<CreateCListing>1</CreateCListing>
<CreateAListing>1</CreateAListing>
<CreateLListing>1</CreateLListing>
<CreateIListing>0</CreateIListing>
<AsmCond>1</AsmCond>
<AsmSymb>1</AsmSymb>
<AsmXref>0</AsmXref>
<CCond>1</CCond>
<CCode>0</CCode>
<CListInc>0</CListInc>
<CSymb>0</CSymb>
<LinkerCodeListing>0</LinkerCodeListing>
</ListingPage>
<OPTXL>
<LMap>1</LMap>
<LComments>1</LComments>
<LGenerateSymbols>1</LGenerateSymbols>
<LLibSym>1</LLibSym>
<LLines>1</LLines>
<LLocSym>1</LLocSym>
<LPubSym>1</LPubSym>
<LXref>0</LXref>
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
<sLdApp>1</sLdApp>
<sGomain>1</sGomain>
<sRbreak>1</sRbreak>
<sRwatch>1</sRwatch>
<sRmem>1</sRmem>
<sRfunc>1</sRfunc>
<sRbox>1</sRbox>
<tLdApp>1</tLdApp>
<tGomain>1</tGomain>
<tRbreak>1</tRbreak>
<tRwatch>1</tRwatch>
<tRmem>1</tRmem>
<tRfunc>1</tRfunc>
<tRbox>1</tRbox>
<tRtrace>1</tRtrace>
<sRSysVw>1</sRSysVw>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<sDlgPa></sDlgPa>
<sIfile></sIfile>
<tDll></tDll>
<tDllPa></tDllPa>
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt>
<TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>UL2CM3</Key>
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM))</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U-O142 -O2254 -S0 -C0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
<AscS1>0</AscS1>
<AscS2>0</AscS2>
<AscS3>0</AscS3>
<aSer3>0</aSer3>
<eProf>0</eProf>
<aLa>0</aLa>
<aPa1>0</aPa1>
<AscS4>0</AscS4>
<aSer4>0</aSer4>
<StkLoc>1</StkLoc>
<TrcWin>0</TrcWin>
<newCpu>0</newCpu>
<uProt>0</uProt>
</DebugFlag>
<LintExecutable></LintExecutable>
<LintConfigFile></LintConfigFile>
<bLintAuto>0</bLintAuto>
<bAutoGenD>0</bAutoGenD>
<LntExFlags>0</LntExFlags>
<pMisraName></pMisraName>
<pszMrule></pszMrule>
<pSingCmds></pSingCmds>
<pMultCmds></pMultCmds>
<pMisraNamep></pMisraNamep>
<pszMrulep></pszMrulep>
<pSingCmdsp></pSingCmdsp>
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
</DebugDescription>
</TargetOption>
</Target>
<Group>
<GroupName>Application/MDK-ARM</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>1</GroupNumber>
<FileNumber>1</FileNumber>
<FileType>2</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>startup_stm32f407xx.s</PathWithFileName>
<FilenameWithoutPath>startup_stm32f407xx.s</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Application/User/Core</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>2</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/main.c</PathWithFileName>
<FilenameWithoutPath>main.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/gpio.c</PathWithFileName>
<FilenameWithoutPath>gpio.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>4</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/freertos.c</PathWithFileName>
<FilenameWithoutPath>freertos.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>5</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/can.c</PathWithFileName>
<FilenameWithoutPath>can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>6</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/crc.c</PathWithFileName>
<FilenameWithoutPath>crc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/dma.c</PathWithFileName>
<FilenameWithoutPath>dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>8</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/spi.c</PathWithFileName>
<FilenameWithoutPath>spi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>9</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/tim.c</PathWithFileName>
<FilenameWithoutPath>tim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>10</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/usart.c</PathWithFileName>
<FilenameWithoutPath>usart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_it.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_it.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>2</GroupNumber>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/stm32f4xx_hal_msp.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_msp.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Drivers/STM32F4xx_HAL_Driver</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>13</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_can.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_can.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>14</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_rcc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>15</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_rcc_ex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>16</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_flash.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>17</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_flash_ex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>18</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_flash_ramfunc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_gpio.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_dma_ex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_dma.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_pwr.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_pwr_ex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>24</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_cortex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>25</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_exti.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_crc.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_crc.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_spi.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_spi.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_tim.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_tim_ex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>3</GroupNumber>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.c</PathWithFileName>
<FilenameWithoutPath>stm32f4xx_hal_uart.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Drivers/CMSIS</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>4</GroupNumber>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Core/Src/system_stm32f4xx.c</PathWithFileName>
<FilenameWithoutPath>system_stm32f4xx.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>Middlewares/FreeRTOS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/croutine.c</PathWithFileName>
<FilenameWithoutPath>croutine.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/event_groups.c</PathWithFileName>
<FilenameWithoutPath>event_groups.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/list.c</PathWithFileName>
<FilenameWithoutPath>list.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/queue.c</PathWithFileName>
<FilenameWithoutPath>queue.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/stream_buffer.c</PathWithFileName>
<FilenameWithoutPath>stream_buffer.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/tasks.c</PathWithFileName>
<FilenameWithoutPath>tasks.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/timers.c</PathWithFileName>
<FilenameWithoutPath>timers.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/CMSIS_RTOS_V2/cmsis_os2.c</PathWithFileName>
<FilenameWithoutPath>cmsis_os2.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/portable/MemMang/heap_4.c</PathWithFileName>
<FilenameWithoutPath>heap_4.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>5</GroupNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>../Middlewares/Third_Party/FreeRTOS/Source/portable/RVDS/ARM_CM4F/port.c</PathWithFileName>
<FilenameWithoutPath>port.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
</Group>
<Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>1</RteFlg>
</Group>
</ProjectOpt>

27
MDK-ARM/keilkill.bat Normal file
View File

@ -0,0 +1,27 @@
del *.bak /s
del *.ddk /s
del *.edk /s
del *.lst /s
del *.lnp /s
del *.mpf /s
del *.mpj /s
del *.obj /s
del *.omf /s
::del *.opt /s ::不允许删除JTAG的设置
del *.plg /s
del *.rpt /s
del *.tmp /s
del *.__i /s
del *.crf /s
del *.o /s
del *.d /s
del *.axf /s
del *.tra /s
del *.dep /s
del JLinkLog.txt /s
del *.iex /s
del *.htm /s
del *.sct /s
del *.map /s
exit

View File

@ -0,0 +1,423 @@
;*******************************************************************************
;* File Name : startup_stm32f407xx.s
;* Author : MCD Application Team
;* Description : STM32F407xx devices vector table for MDK-ARM toolchain.
;* This module performs:
;* - Set the initial SP
;* - Set the initial PC == Reset_Handler
;* - Set the vector table entries with the exceptions ISR address
;* - Branches to __main in the C library (which eventually
;* calls main()).
;* After Reset the CortexM4 processor is in Thread mode,
;* priority is Privileged, and the Stack is set to Main.
;*******************************************************************************
;* @attention
;*
;* Copyright (c) 2017 STMicroelectronics.
;* All rights reserved.
;*
;* This software is licensed under terms that can be found in the LICENSE file
;* in the root directory of this software component.
;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;*******************************************************************************
;* <<< Use Configuration Wizard in Context Menu >>>
;
; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
; <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Stack_Size EQU 0x400
AREA STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem SPACE Stack_Size
__initial_sp
; <h> Heap Configuration
; <o> Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>
Heap_Size EQU 0x200
AREA HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem SPACE Heap_Size
__heap_limit
PRESERVE8
THUMB
; Vector Table Mapped to Address 0 at Reset
AREA RESET, DATA, READONLY
EXPORT __Vectors
EXPORT __Vectors_End
EXPORT __Vectors_Size
__Vectors DCD __initial_sp ; Top of Stack
DCD Reset_Handler ; Reset Handler
DCD NMI_Handler ; NMI Handler
DCD HardFault_Handler ; Hard Fault Handler
DCD MemManage_Handler ; MPU Fault Handler
DCD BusFault_Handler ; Bus Fault Handler
DCD UsageFault_Handler ; Usage Fault Handler
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD 0 ; Reserved
DCD SVC_Handler ; SVCall Handler
DCD DebugMon_Handler ; Debug Monitor Handler
DCD 0 ; Reserved
DCD PendSV_Handler ; PendSV Handler
DCD SysTick_Handler ; SysTick Handler
; External Interrupts
DCD WWDG_IRQHandler ; Window WatchDog
DCD PVD_IRQHandler ; PVD through EXTI Line detection
DCD TAMP_STAMP_IRQHandler ; Tamper and TimeStamps through the EXTI line
DCD RTC_WKUP_IRQHandler ; RTC Wakeup through the EXTI line
DCD FLASH_IRQHandler ; FLASH
DCD RCC_IRQHandler ; RCC
DCD EXTI0_IRQHandler ; EXTI Line0
DCD EXTI1_IRQHandler ; EXTI Line1
DCD EXTI2_IRQHandler ; EXTI Line2
DCD EXTI3_IRQHandler ; EXTI Line3
DCD EXTI4_IRQHandler ; EXTI Line4
DCD DMA1_Stream0_IRQHandler ; DMA1 Stream 0
DCD DMA1_Stream1_IRQHandler ; DMA1 Stream 1
DCD DMA1_Stream2_IRQHandler ; DMA1 Stream 2
DCD DMA1_Stream3_IRQHandler ; DMA1 Stream 3
DCD DMA1_Stream4_IRQHandler ; DMA1 Stream 4
DCD DMA1_Stream5_IRQHandler ; DMA1 Stream 5
DCD DMA1_Stream6_IRQHandler ; DMA1 Stream 6
DCD ADC_IRQHandler ; ADC1, ADC2 and ADC3s
DCD CAN1_TX_IRQHandler ; CAN1 TX
DCD CAN1_RX0_IRQHandler ; CAN1 RX0
DCD CAN1_RX1_IRQHandler ; CAN1 RX1
DCD CAN1_SCE_IRQHandler ; CAN1 SCE
DCD EXTI9_5_IRQHandler ; External Line[9:5]s
DCD TIM1_BRK_TIM9_IRQHandler ; TIM1 Break and TIM9
DCD TIM1_UP_TIM10_IRQHandler ; TIM1 Update and TIM10
DCD TIM1_TRG_COM_TIM11_IRQHandler ; TIM1 Trigger and Commutation and TIM11
DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare
DCD TIM2_IRQHandler ; TIM2
DCD TIM3_IRQHandler ; TIM3
DCD TIM4_IRQHandler ; TIM4
DCD I2C1_EV_IRQHandler ; I2C1 Event
DCD I2C1_ER_IRQHandler ; I2C1 Error
DCD I2C2_EV_IRQHandler ; I2C2 Event
DCD I2C2_ER_IRQHandler ; I2C2 Error
DCD SPI1_IRQHandler ; SPI1
DCD SPI2_IRQHandler ; SPI2
DCD USART1_IRQHandler ; USART1
DCD USART2_IRQHandler ; USART2
DCD USART3_IRQHandler ; USART3
DCD EXTI15_10_IRQHandler ; External Line[15:10]s
DCD RTC_Alarm_IRQHandler ; RTC Alarm (A and B) through EXTI Line
DCD OTG_FS_WKUP_IRQHandler ; USB OTG FS Wakeup through EXTI line
DCD TIM8_BRK_TIM12_IRQHandler ; TIM8 Break and TIM12
DCD TIM8_UP_TIM13_IRQHandler ; TIM8 Update and TIM13
DCD TIM8_TRG_COM_TIM14_IRQHandler ; TIM8 Trigger and Commutation and TIM14
DCD TIM8_CC_IRQHandler ; TIM8 Capture Compare
DCD DMA1_Stream7_IRQHandler ; DMA1 Stream7
DCD FMC_IRQHandler ; FMC
DCD SDIO_IRQHandler ; SDIO
DCD TIM5_IRQHandler ; TIM5
DCD SPI3_IRQHandler ; SPI3
DCD UART4_IRQHandler ; UART4
DCD UART5_IRQHandler ; UART5
DCD TIM6_DAC_IRQHandler ; TIM6 and DAC1&2 underrun errors
DCD TIM7_IRQHandler ; TIM7
DCD DMA2_Stream0_IRQHandler ; DMA2 Stream 0
DCD DMA2_Stream1_IRQHandler ; DMA2 Stream 1
DCD DMA2_Stream2_IRQHandler ; DMA2 Stream 2
DCD DMA2_Stream3_IRQHandler ; DMA2 Stream 3
DCD DMA2_Stream4_IRQHandler ; DMA2 Stream 4
DCD ETH_IRQHandler ; Ethernet
DCD ETH_WKUP_IRQHandler ; Ethernet Wakeup through EXTI line
DCD CAN2_TX_IRQHandler ; CAN2 TX
DCD CAN2_RX0_IRQHandler ; CAN2 RX0
DCD CAN2_RX1_IRQHandler ; CAN2 RX1
DCD CAN2_SCE_IRQHandler ; CAN2 SCE
DCD OTG_FS_IRQHandler ; USB OTG FS
DCD DMA2_Stream5_IRQHandler ; DMA2 Stream 5
DCD DMA2_Stream6_IRQHandler ; DMA2 Stream 6
DCD DMA2_Stream7_IRQHandler ; DMA2 Stream 7
DCD USART6_IRQHandler ; USART6
DCD I2C3_EV_IRQHandler ; I2C3 event
DCD I2C3_ER_IRQHandler ; I2C3 error
DCD OTG_HS_EP1_OUT_IRQHandler ; USB OTG HS End Point 1 Out
DCD OTG_HS_EP1_IN_IRQHandler ; USB OTG HS End Point 1 In
DCD OTG_HS_WKUP_IRQHandler ; USB OTG HS Wakeup through EXTI
DCD OTG_HS_IRQHandler ; USB OTG HS
DCD DCMI_IRQHandler ; DCMI
DCD 0 ; Reserved
DCD HASH_RNG_IRQHandler ; Hash and Rng
DCD FPU_IRQHandler ; FPU
__Vectors_End
__Vectors_Size EQU __Vectors_End - __Vectors
AREA |.text|, CODE, READONLY
; Reset handler
Reset_Handler PROC
EXPORT Reset_Handler [WEAK]
IMPORT SystemInit
IMPORT __main
LDR R0, =SystemInit
BLX R0
LDR R0, =__main
BX R0
ENDP
; Dummy Exception Handlers (infinite loops which can be modified)
NMI_Handler PROC
EXPORT NMI_Handler [WEAK]
B .
ENDP
HardFault_Handler\
PROC
EXPORT HardFault_Handler [WEAK]
B .
ENDP
MemManage_Handler\
PROC
EXPORT MemManage_Handler [WEAK]
B .
ENDP
BusFault_Handler\
PROC
EXPORT BusFault_Handler [WEAK]
B .
ENDP
UsageFault_Handler\
PROC
EXPORT UsageFault_Handler [WEAK]
B .
ENDP
SVC_Handler PROC
EXPORT SVC_Handler [WEAK]
B .
ENDP
DebugMon_Handler\
PROC
EXPORT DebugMon_Handler [WEAK]
B .
ENDP
PendSV_Handler PROC
EXPORT PendSV_Handler [WEAK]
B .
ENDP
SysTick_Handler PROC
EXPORT SysTick_Handler [WEAK]
B .
ENDP
Default_Handler PROC
EXPORT WWDG_IRQHandler [WEAK]
EXPORT PVD_IRQHandler [WEAK]
EXPORT TAMP_STAMP_IRQHandler [WEAK]
EXPORT RTC_WKUP_IRQHandler [WEAK]
EXPORT FLASH_IRQHandler [WEAK]
EXPORT RCC_IRQHandler [WEAK]
EXPORT EXTI0_IRQHandler [WEAK]
EXPORT EXTI1_IRQHandler [WEAK]
EXPORT EXTI2_IRQHandler [WEAK]
EXPORT EXTI3_IRQHandler [WEAK]
EXPORT EXTI4_IRQHandler [WEAK]
EXPORT DMA1_Stream0_IRQHandler [WEAK]
EXPORT DMA1_Stream1_IRQHandler [WEAK]
EXPORT DMA1_Stream2_IRQHandler [WEAK]
EXPORT DMA1_Stream3_IRQHandler [WEAK]
EXPORT DMA1_Stream4_IRQHandler [WEAK]
EXPORT DMA1_Stream5_IRQHandler [WEAK]
EXPORT DMA1_Stream6_IRQHandler [WEAK]
EXPORT ADC_IRQHandler [WEAK]
EXPORT CAN1_TX_IRQHandler [WEAK]
EXPORT CAN1_RX0_IRQHandler [WEAK]
EXPORT CAN1_RX1_IRQHandler [WEAK]
EXPORT CAN1_SCE_IRQHandler [WEAK]
EXPORT EXTI9_5_IRQHandler [WEAK]
EXPORT TIM1_BRK_TIM9_IRQHandler [WEAK]
EXPORT TIM1_UP_TIM10_IRQHandler [WEAK]
EXPORT TIM1_TRG_COM_TIM11_IRQHandler [WEAK]
EXPORT TIM1_CC_IRQHandler [WEAK]
EXPORT TIM2_IRQHandler [WEAK]
EXPORT TIM3_IRQHandler [WEAK]
EXPORT TIM4_IRQHandler [WEAK]
EXPORT I2C1_EV_IRQHandler [WEAK]
EXPORT I2C1_ER_IRQHandler [WEAK]
EXPORT I2C2_EV_IRQHandler [WEAK]
EXPORT I2C2_ER_IRQHandler [WEAK]
EXPORT SPI1_IRQHandler [WEAK]
EXPORT SPI2_IRQHandler [WEAK]
EXPORT USART1_IRQHandler [WEAK]
EXPORT USART2_IRQHandler [WEAK]
EXPORT USART3_IRQHandler [WEAK]
EXPORT EXTI15_10_IRQHandler [WEAK]
EXPORT RTC_Alarm_IRQHandler [WEAK]
EXPORT OTG_FS_WKUP_IRQHandler [WEAK]
EXPORT TIM8_BRK_TIM12_IRQHandler [WEAK]
EXPORT TIM8_UP_TIM13_IRQHandler [WEAK]
EXPORT TIM8_TRG_COM_TIM14_IRQHandler [WEAK]
EXPORT TIM8_CC_IRQHandler [WEAK]
EXPORT DMA1_Stream7_IRQHandler [WEAK]
EXPORT FMC_IRQHandler [WEAK]
EXPORT SDIO_IRQHandler [WEAK]
EXPORT TIM5_IRQHandler [WEAK]
EXPORT SPI3_IRQHandler [WEAK]
EXPORT UART4_IRQHandler [WEAK]
EXPORT UART5_IRQHandler [WEAK]
EXPORT TIM6_DAC_IRQHandler [WEAK]
EXPORT TIM7_IRQHandler [WEAK]
EXPORT DMA2_Stream0_IRQHandler [WEAK]
EXPORT DMA2_Stream1_IRQHandler [WEAK]
EXPORT DMA2_Stream2_IRQHandler [WEAK]
EXPORT DMA2_Stream3_IRQHandler [WEAK]
EXPORT DMA2_Stream4_IRQHandler [WEAK]
EXPORT ETH_IRQHandler [WEAK]
EXPORT ETH_WKUP_IRQHandler [WEAK]
EXPORT CAN2_TX_IRQHandler [WEAK]
EXPORT CAN2_RX0_IRQHandler [WEAK]
EXPORT CAN2_RX1_IRQHandler [WEAK]
EXPORT CAN2_SCE_IRQHandler [WEAK]
EXPORT OTG_FS_IRQHandler [WEAK]
EXPORT DMA2_Stream5_IRQHandler [WEAK]
EXPORT DMA2_Stream6_IRQHandler [WEAK]
EXPORT DMA2_Stream7_IRQHandler [WEAK]
EXPORT USART6_IRQHandler [WEAK]
EXPORT I2C3_EV_IRQHandler [WEAK]
EXPORT I2C3_ER_IRQHandler [WEAK]
EXPORT OTG_HS_EP1_OUT_IRQHandler [WEAK]
EXPORT OTG_HS_EP1_IN_IRQHandler [WEAK]
EXPORT OTG_HS_WKUP_IRQHandler [WEAK]
EXPORT OTG_HS_IRQHandler [WEAK]
EXPORT DCMI_IRQHandler [WEAK]
EXPORT HASH_RNG_IRQHandler [WEAK]
EXPORT FPU_IRQHandler [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMP_STAMP_IRQHandler
RTC_WKUP_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Stream0_IRQHandler
DMA1_Stream1_IRQHandler
DMA1_Stream2_IRQHandler
DMA1_Stream3_IRQHandler
DMA1_Stream4_IRQHandler
DMA1_Stream5_IRQHandler
DMA1_Stream6_IRQHandler
ADC_IRQHandler
CAN1_TX_IRQHandler
CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_TIM9_IRQHandler
TIM1_UP_TIM10_IRQHandler
TIM1_TRG_COM_TIM11_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTC_Alarm_IRQHandler
OTG_FS_WKUP_IRQHandler
TIM8_BRK_TIM12_IRQHandler
TIM8_UP_TIM13_IRQHandler
TIM8_TRG_COM_TIM14_IRQHandler
TIM8_CC_IRQHandler
DMA1_Stream7_IRQHandler
FMC_IRQHandler
SDIO_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_DAC_IRQHandler
TIM7_IRQHandler
DMA2_Stream0_IRQHandler
DMA2_Stream1_IRQHandler
DMA2_Stream2_IRQHandler
DMA2_Stream3_IRQHandler
DMA2_Stream4_IRQHandler
ETH_IRQHandler
ETH_WKUP_IRQHandler
CAN2_TX_IRQHandler
CAN2_RX0_IRQHandler
CAN2_RX1_IRQHandler
CAN2_SCE_IRQHandler
OTG_FS_IRQHandler
DMA2_Stream5_IRQHandler
DMA2_Stream6_IRQHandler
DMA2_Stream7_IRQHandler
USART6_IRQHandler
I2C3_EV_IRQHandler
I2C3_ER_IRQHandler
OTG_HS_EP1_OUT_IRQHandler
OTG_HS_EP1_IN_IRQHandler
OTG_HS_WKUP_IRQHandler
OTG_HS_IRQHandler
DCMI_IRQHandler
HASH_RNG_IRQHandler
FPU_IRQHandler
B .
ENDP
ALIGN
;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
IF :DEF:__MICROLIB
EXPORT __initial_sp
EXPORT __heap_base
EXPORT __heap_limit
ELSE
IMPORT __use_two_region_memory
EXPORT __user_initial_stackheap
__user_initial_stackheap
LDR R0, = Heap_Mem
LDR R1, =(Stack_Mem + Stack_Size)
LDR R2, = (Heap_Mem + Heap_Size)
LDR R3, = Stack_Mem
BX LR
ALIGN
ENDIF
END

25
MDK-ARM/study.md Normal file
View File

@ -0,0 +1,25 @@
# 1 TASK 错误检测
# 我感觉是在单独模块里写任务和功能在task里设置总任务init 功能 延时 错误处理
# ahrss算法
# 学各种滤波
# 卡尔曼滤波
# osMessageQueueId_t消息句柄
# can_use.c大疆电机控制函数
# osThreadId_t 操作系统中的线程 ID
# UBaseType_t unsigned int 类型的别名,用于表示无符号整数值。它通常用于计数任务的堆栈使用情况、任务的优先级等等。防止堆栈溢出等问题。
# osThreadGetStackSpace 是一个函数,用于获取指定线程的剩余堆栈空间 UBaseType_t osThreadGetStackSpace(osThreadId_t thread_id); thread_id: 指定线程的 ID 返回值:剩余堆栈空间的大小(以字节为单位)
# osMessageQueueGet osStatus osMessageQueueGet(osMessageQueueId_t queue_id, void *buffer, uint16_t buffer_size, uint32_t timeout); 返回值:
# osOK: 获取消息成功
# osErrorTimeout: 超时
# osErrorParameter: 参数错误
# osErrorResource: 资源错误

View File

@ -1,6 +1,11 @@
*代码框架
r2上层代码
在24年r2代码上修改
3.12 增加go电机需测试
12.2 修改遥控器控制
3.13 go已测试控制和反馈正常
3.15 vesc控制有问题id为1和2时出现只能控制第一个的情况查找原因是can_use里对id为3进行delay删除for循环直接整个控制代码osdelay问题消失不加延时无法控制任何电机。原因未查明但可以正常使用
3.16 up.c里3508需增加位置环id12分别为20063508位置环适应升降机构。
go电机需换rs485模块测试目前存在可控但收不到反馈数据的情况

View File

@ -28,36 +28,21 @@ ConfigParam_t param_chassis ={
static const ConfigParam_t param_chassis ={
//
//typedef struct
//{
// /*该部分决定PID的参数整定在config中修改*/
// pid_param_t VESC_5065_M1_param;
// pid_param_t VESC_5065_M2_param;
//
// pid_param_t UP_GM6020_speed_param;
// pid_param_t UP_GM6020_angle_param;
//
// pid_param_t M2006_speed_param;
// pid_param_t M2006_angle_param;
//
//}UP_Param_t;
#endif
.up={
.M2006_angle_param = { // 外环(角度环)
.p = 25.0f, // 原13.0 → 提升P加速响应
.i = 0.0f, // 保持
.d = 1.5f, // 原1.8 → 增强D抑制振荡
.i_limit = 1000.0f,// 原2000 → 限制积分累积
.M2006_angle_param = {
.p = 25.0f,
.i = 0.0f,
.d = 1.5f,
.i_limit = 1000.0f,
.out_limit = 3000.0f,
},
.M2006_speed_param = { // 内环(速度环)
.p = 5.0f, // 原5.5 → 提升P加快跟踪
.i = 0.3f, // 保持
.d = 0.0f, // 原0.4 → 抑制新增高频噪声
.M2006_speed_param = {
.p = 5.0f,
.i = 0.3f,
.d = 0.0f,
.i_limit = 2000.0f,
.out_limit = 3000.0f,
},
@ -81,99 +66,107 @@ static const ConfigParam_t param_chassis ={
.d = 3.2f,
.i_limit = 200.0f,
.out_limit =6000.0f,
},
.go_param={
.rev = 0,
.T=0.1,
.W=0.1,
.K_P=0.1,
.K_W=0.1,
}
},
.chassis = {/**/
.C6020pitAngle_param = {
.p = 15.0f,
.i = 0.3f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f,
},
.C6020pitOmega_param = {
.p =30.0f,
.i =0.3f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.Gimbal_yawAngle_param = {
.p =8.0f,
.i =0.0f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.Gimbal_yawOmega_param = {
.p =18.0f,
.i =0.0f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.Gimbal_pitchAngle_param = {
.p =8.0f,
.i =0.0f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.Gimbal_pitchOmega_param = {
.p =18.0f,
.i =0.0f,
.d =0.0f,
.i_limit = 200.0f,
.out_limit = 3000.0f
},
.AngleCor_param = {
.p =0.8f,
.i =0.0f,
.d =1.0f,
.i_limit = 0.0f,
.out_limit =5000.0f,
},
.OmegaCor_param = {
.p =23.5f,
.i =0.0f,
.d =0.05f,
.i_limit = 0.0f,
.out_limit =5000.0f,
},
.ImuCor_param = {
.p =95.0f,
.i =0.0f,
.d =0.0f,
.i_limit = 0.0f,
.out_limit =200.0f,
},
// .chassis = {/**/
// .C6020pitAngle_param = {
// .p = 15.0f,
// .i = 0.3f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f,
// },
// .C6020pitOmega_param = {
// .p =30.0f,
// .i =0.3f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f
// },
//
// .Gimbal_yawAngle_param = {
// .p =8.0f,
// .i =0.0f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f
// },
//
// .Gimbal_yawOmega_param = {
// .p =18.0f,
// .i =0.0f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f
// },
//
// .Gimbal_pitchAngle_param = {
// .p =8.0f,
// .i =0.0f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f
// },
//
// .Gimbal_pitchOmega_param = {
// .p =18.0f,
// .i =0.0f,
// .d =0.0f,
// .i_limit = 200.0f,
// .out_limit = 3000.0f
// },
// .AngleCor_param = {
// .p =0.8f,
// .i =0.0f,
// .d =1.0f,
// .i_limit = 0.0f,
// .out_limit =5000.0f,
// },
//
// .OmegaCor_param = {
// .p =23.5f,
// .i =0.0f,
// .d =0.05f,
// .i_limit = 0.0f,
// .out_limit =5000.0f,
// },
//
// .ImuCor_param = {
// .p =95.0f,
// .i =0.0f,
// .d =0.0f,
// .i_limit = 0.0f,
// .out_limit =200.0f,
// },
//
// .DisCamera_param = {
// .p =80.0f,
// .i =0.1f,
// .d =0.0f,
// .i_limit = 0.0f,
// .out_limit =5000.0f,
// },
.DisCamera_param = {
.p =80.0f,
.i =0.1f,
.d =0.0f,
.i_limit = 0.0f,
.out_limit =5000.0f,
},
.M3508_param = {
.p = 15.1f,
.i = 0.02f,
.d = 3.2f,
.i_limit = 200.0f,
.out_limit =6000.0f,
}
// .M3508_param = {
// .p = 15.1f,
// .i = 0.02f,
// .d = 3.2f,
// .i_limit = 200.0f,
// .out_limit =6000.0f,
// }
//
},
// },
.can = {

View File

@ -12,7 +12,8 @@
int8_t up_init(UP_t *u,const UP_Param_t *param,float target_freq)
{
u->param = param; /*初始化参数 */
GO_M8010_init();
PID_init (&u->pid.VESC_5065_M1 ,PID_POSITION ,&(u->param ->VESC_5065_M1_param ));
PID_init (&u->pid.VESC_5065_M2 ,PID_POSITION ,&(u->param ->VESC_5065_M2_param ));
@ -22,11 +23,17 @@ int8_t up_init(UP_t *u,const UP_Param_t *param,float target_freq)
PID_init (&u->pid .GM6020_speed,PID_POSITION ,&(u->param ->UP_GM6020_speed_param ));
PID_init (&u->pid .GM6020_angle,PID_POSITION ,&(u->param ->UP_GM6020_angle_param ));
u->M2006 .motor =M2006 ;
u->M3508 .motor =M3508 ;
for(int i=0;i<3;i++){
PID_init (&u->pid .M3508_speed[i] ,PID_POSITION ,&(u->param ->M3508_speed_param ));
}
for(int i=0;i<2;i++){ //go初始位置设置为0
u->GO_motor_info[i] = getGoPoint(i);
GO_M8010_send_data(BSP_UART_GetHandle(BSP_UART_RS485), i,u->param->go_param .rev ,u->param->go_param .T ,u->param->go_param .W ,0,u->param->go_param .K_P ,u->param->go_param .K_W );
}
}
@ -48,19 +55,21 @@ int8_t UP_UpdateFeedback(UP_t *u, const CAN_t *can) {
int8_t cnt=0;
/*上层电机控制*/
int8_t UP_M2006_angle(UP_t *u, fp32 target_angle) {
int8_t UP_angle(UP_t *u, fp32 target_angle) {
// 获取当前编码器角度
// switch (u->)
float angle = u->motorfeedback.M2006_angle;
// 初始化阶段前50次循环记录初始值
if (u->M2006.init_cnt < 50) {
u->M2006.orig_angle = angle; // 记录初始编码器值
u->M2006.last_angle = angle; // 初始化上一次角度
u->M2006.last_angle = angle;
u->M2006.init_cnt++; // 初始化计数器递增
return 0; // 初始化阶段不执行控制
return 0;
}
// 计算角度差值(处理编码器溢出)
float delta = angle - u->M2006.last_angle;
if (delta > 4096) {
u->M2006.round_cnt--; // 逆时针跨圈
@ -70,10 +79,10 @@ int8_t UP_M2006_angle(UP_t *u, fp32 target_angle) {
u->M2006.last_angle = angle;
// 计算总角度(基于初始偏移和圈数)
// 计算总角度
float total_angle = (u->M2006.round_cnt * 8191 + (angle - u->M2006.orig_angle)) * MOTOR2006_ECD_TO_ANGLE;
u->M2006 .total_angle =total_angle;
// PID控制计算
float delta_angle = PID_calc(&u->pid.M2006_angle, total_angle, target_angle);
float delta_speed = PID_calc(&u->pid.M2006_speed, u->motorfeedback.M2006_rpm, delta_angle);
u->motor_target.M2006_angle = target_angle;
@ -99,7 +108,7 @@ int8_t VESC_M5065_Control(UP_t *u,fp32 speed)
u->motor_target .VESC_5065_M2_rpm =speed;
u->final_out .final_VESC_5065_M1out =u->motor_target .VESC_5065_M1_rpm;
u->final_out .final_VESC_5065_M2out =u->motor_target .VESC_5065_M2_rpm;
u->final_out .final_VESC_5065_M2out =-u->motor_target .VESC_5065_M2_rpm;
}
@ -115,7 +124,13 @@ int8_t GM6020_control(UP_t *u,fp32 angle)
PID_calc (&(u->pid .GM6020_speed ),u->motorfeedback.rotor_pit6020rpm ,delat_speed);
u->motor_target .rotor_pit6020angle =angle ;
}
/*go电机控制*/
int8_t GO_SendData(UP_t *u,int id,float pos)
{
GO_M8010_send_data(BSP_UART_GetHandle(BSP_UART_RS485), id,u->param->go_param .rev ,u->param->go_param .T ,u->param->go_param .W ,AngleChange(RADIAN,pos),u->param->go_param .K_P ,u->param->go_param .K_W );
}
int8_t ALL_Motor_Control(UP_t *u,CAN_Output_t *out)
@ -148,3 +163,5 @@ int8_t UP_control(UP_t *u,CAN_Output_t *out)
case STATE_POST_LAUNCH : break ;
}
}

View File

@ -34,7 +34,32 @@ typedef struct {
}UP_Imu_t;
/**
*@input[in] rev github为回答issue
*@input[in] T N·m
*@input[in] Pos rad
*@input[in] W rad/s
*@input[in] K_P kp
*@input[in] K_W kp
*@note t = T + - *K_P + - *K_W
*/
typedef struct {
int rev; //暂时不知何用
float T;
float W;
float K_P;
float K_W;
}GO_param_t;
typedef enum {
M2006 = 1,
M3508
} MotorType_t;
typedef struct
{
/*该部分决定PID的参数整定在config中修改*/
@ -47,18 +72,21 @@ typedef struct
pid_param_t M2006_speed_param;
pid_param_t M2006_angle_param;
pid_param_t M3508_speed_param;
pid_param_t M3508_speed_param;
GO_param_t go_param;
}UP_Param_t;
typedef struct
{
float orig_angle;
int8_t offset_flag;
float angle;
float last_angle;
float total_angle;
MotorType_t motor;
float orig_angle;
float last_angle;
int32_t round_cnt;
uint16_t init_cnt;
float total_angle;
}M2006_data;
}motor_angle_data;
typedef struct{
@ -68,13 +96,10 @@ typedef struct{
UP_Imu_t pos088;
OperationState ctrl;
struct {
float orig_angle; // 初始偏移量
float last_angle; // 上一次编码器值
int32_t round_cnt; // 圈数计数器
uint16_t init_cnt; // 初始化计数器前50次记录初始值
float total_angle;
} M2006;
motor_angle_data M2006;
motor_angle_data M3508;
GO_Motorfield *GO_motor_info[GO_NUM];//存放go电机数据
struct{
fp32 rotor_pit6020ecd;
@ -145,8 +170,8 @@ int8_t up_init(UP_t *u,const UP_Param_t *param,float target_freq);
int8_t UP_UpdateFeedback(UP_t *u, const CAN_t *can) ;
int8_t GM6020_control(UP_t *u,fp32 angle);
int8_t VESC_M5065_Control(UP_t *u,fp32 speed);
int8_t UP_M2006_angle(UP_t *u,fp32 target_angle);
int8_t GO_SendData(UP_t *u,int id,float pos);
int8_t UP_angle(UP_t *u, fp32 target_angle) ;
int8_t UP_control(UP_t *u,CAN_Output_t *out);
int8_t ALL_Motor_Control(UP_t *u,CAN_Output_t *out);
int8_t UP_M2006_angle(UP_t *u,fp32 target_angle);

View File

@ -48,3 +48,15 @@ bool CRC16_Verify(const uint8_t *buf, size_t len) {
((const uint16_t *)((const uint8_t *)buf +
(len % 2)))[len / sizeof(uint16_t) - 1];
}
uint16_t do_crc_table(uint8_t *ptr, int len)
{
uint16_t crc = 0x0000;
while(len--)
{
crc = (crc >> 8) ^ crc16_tab[(crc ^ *ptr++) & 0xff];
}
return crc;
}

View File

@ -12,6 +12,7 @@ extern "C" {
uint16_t CRC16_Calc(const uint8_t *buf, size_t len, uint16_t crc);
bool CRC16_Verify(const uint8_t *buf, size_t len);
uint16_t do_crc_table(uint8_t *ptr, int len);
#ifdef __cplusplus
}

View File

@ -6,19 +6,19 @@
#include "bsp_usart.h"
#include <cmsis_os2.h>
GO_Motorfield GO_motor_info[GO_NUM];//存放电机数据
const float gravit_const =9.81;//计算前馈力矩有关
GO_Motorfield GO_motor_info[GO_NUM];//存放电机数据
static const float gravit_const =9.81;//计算前馈力矩有关
//数据处理函数
static void GO_M8010_recv_data(uint8_t* Temp_buffer);
/**
*@brief
*/
void GO_M8010_init (){
void GO_M8010_init (void){
for (uint8_t id= 0; id <GO_NUM ;id++)
{
GO_motor_info[id].id = id;
GO_motor_info[id].mode = 1;
GO_motor_info[id].mode = 1; //位置模式
GO_motor_info[id].correct = 1;
GO_motor_info[id].MError = 0;
GO_motor_info[id].Temp = 0;
@ -38,7 +38,7 @@ void GO_M8010_init (){
//暂存接收数据
static uint8_t Temp_buffer[16];
uint8_t Temp_buffer[16];
void USART6_RxCompleteCallback(void )
{
@ -47,12 +47,12 @@ void USART6_RxCompleteCallback(void )
uint16_t crc = CRC16_Calc(Temp_buffer,sizeof(Temp_buffer)-2,0x0000);
if ((Temp_buffer[14] != (crc&0xFF)) || (Temp_buffer[15] != ((crc>>8) & 0xFF)))
{
HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET); //蓝色灯亮
HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); //红色灯灭
// HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET); //蓝色灯亮
// HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); //红色灯灭
return;
}
HAL_GPIO_WritePin(GPIOH, GPIO_PIN_11, GPIO_PIN_SET); // indicate CRC correct
HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); //红色灯灭
// HAL_GPIO_WritePin(GPIOH, GPIO_PIN_11, GPIO_PIN_SET); // indicate CRC correct
// HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); //红色灯灭
GO_M8010_recv_data(Temp_buffer);
}
@ -83,8 +83,8 @@ void uartTxCB(UART_HandleTypeDef *huart)
void GO_M8010_send_data(UART_HandleTypeDef *huart, int id,int rev,float T,float Pos,
float W,float K_P,float K_W)
{
GO_Motorfield* motor;
// a pointer to target motor
GO_Motorfield* motor;
motor = GO_motor_info+id;
//这个rev是干啥的
@ -130,7 +130,7 @@ void GO_M8010_send_data(UART_HandleTypeDef *huart, int id,int rev,float T,float
// interrupt buffer sending
HAL_UART_Transmit_IT(huart,motor->buffer,sizeof(motor->buffer));
osDelay(100);
osDelay(1);
HAL_UART_Receive_DMA(huart, Temp_buffer, 16);//有无都可以

View File

@ -19,39 +19,35 @@ typedef struct
uint8_t id :4;
uint8_t status :3;
uint8_t none :1;
} RIS_Mode_t /*__attribute__((packed))*/;
} RIS_Mode_t ;
/**
* @brief <EFBFBD><EFBFBD><EFBFBD>״̬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
*
*/
typedef struct
{
int16_t tor_des; // <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD>Ť<EFBFBD><C5A4> unit: N.m (q8)
int16_t spd_des; // <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD>ٶ<EFBFBD> unit: rad/s (q7)
int32_t pos_des; // <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB> unit: rad (q15)
uint16_t k_pos; // <20><><EFBFBD><EFBFBD><EFBFBD>ؽڸն<DAB8>ϵ<EFBFBD><CFB5> unit: 0.0-1.0 (q15)
uint16_t k_spd; // <20><><EFBFBD><EFBFBD><EFBFBD>ؽ<EFBFBD><D8BD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5> unit: 0.0-1.0 (q15)
int16_t tor_des;
int16_t spd_des;
int32_t pos_des;
uint16_t k_pos;
uint16_t k_spd;
} RIS_Comd_t; // <20><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD> 12Byte
} RIS_Comd_t;
/**
* @brief <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݰ<EFBFBD><EFBFBD><EFBFBD>ʽ
*
*
*/
typedef struct
{
uint8_t head[2]; // <20><>ͷ 2Byte
RIS_Mode_t mode; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ģʽ 1Byte
RIS_Comd_t comd; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 12Byte
uint16_t CRC16; // CRC 2Byte
uint8_t head[2];
RIS_Mode_t mode;
RIS_Comd_t comd;
uint16_t CRC16;
} ControlData_t; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 17Byte
} ControlData_t;
@ -62,12 +58,12 @@ typedef struct {
uint16_t correct;
int MError;
int Temp;
float tar_pos; // target position
float tar_w; // target speed
float T; // <20><>ǰʵ<C7B0>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float W; // <20><>ǰʵ<C7B0>ʵ<EFBFBD><CAB5><EFBFBD>ٶȣ<D9B6><C8A3><EFBFBD><EFBFBD>٣<EFBFBD>
float Pos; // <20><>ǰ<EFBFBD><C7B0><EFBFBD>λ<EFBFBD><CEBB>
int footForce; // They dont even know what 7 is this so we dont update this
float tar_pos;
float tar_w;
float T;
float W;
float Pos;
int footForce;
uint8_t buffer[17];
uint8_t Rec_buffer[16];
ControlData_t motor_send_data;

View File

@ -266,10 +266,10 @@ int8_t CAN_VESC_Control(int id,CAN_MotorGroup_e group, CAN_Output_t *output,CAN_
for(int i=0 ; i < 4 ; i ++)
{
if(i==2) //此处可能同时发送四个vesc导致只有三个轮子接收到数据 故加上delay
{
// if(i==2) //此处可能同时发送四个vesc导致只有三个轮子接收到数据 故加上delay
// {
osDelay(1);
}
// }
//将单个电机的期望输出值通过联合体拆分
Byte[0] = raw[i].byte.byte1;
Byte[1] = raw[i].byte.byte2;

View File

@ -102,7 +102,6 @@ typedef struct {
BSP_CAN_t chassis5065;
BSP_CAN_t motor3508;
BSP_CAN_t pitch6020;
BSP_CAN_t sick;
} CAN_Params_t;

View File

@ -73,10 +73,7 @@ const uint32_t delay_tick = osKernelGetTickFreq() / TASK_FREQ_CAN;
&(can_out.chassis5065), 0, 0) == osOK) {
CAN_VESC_Control(1,CAN_MOTOR_CHASSIS5065, &can_out ,&can);
}
if (osMessageQueueGet(task_runtime.msgq.can.output.shoot5065,
&(can_out.chassis5065), 0, 0) == osOK) {
CAN_VESC_Control(2,CAN_MOTOR_CHASSIS5065, &can_out ,&can);
}
tick += delay_tick; /* 计算下一个唤醒时刻 */
osDelayUntil(tick); /* 运行结束,等待下一个周期唤醒 */
}

View File

@ -29,7 +29,9 @@ static UP_t UP;
#endif
float aaa=0;
float bbb=0;
float CCC=0;
/**
@ -53,11 +55,23 @@ void Task_up(void *argument)
#endif
UP_UpdateFeedback(&UP, &can) ;
// GM6020_control(&UP, 100) ;
// UP_M2006_angle(&UP, 180);
// UP_M3508_speed(&UP, 500);
// VESC_M5065_Control(&UP, 1000);
UP_angle(&UP, bbb);
// UP_M3508_speed(&UP, 500);
// VESC_M5065_Control(&UP, 20000);
GO_SendData(&UP, 1,CCC);
GO_SendData(&UP, 0,aaa);
ALL_Motor_Control(&UP,&UP_CAN_out);
osDelay(1);
/*imu数据获取*/
osMessageQueueGet(task_runtime.msgq.imu.eulr, &UP.pos088.imu_eulr, NULL, 0);