Compare commits

...

4 Commits

38 changed files with 677 additions and 646 deletions

View File

@@ -1,4 +1,13 @@
# New-Infantry-C-Board-Legacy # New-Infantry-C-Board-Legacy
@Peng Ge的全向轮步兵代码基于C板使用标准库编写 @Peng Ge的全向轮步兵代码基于C板使用标准库编写
编译器使用Keil V5
编译器使用ARMCC V5
该代码为RMUL2026 最终上场版本
该代码已过时,仅用于参考使用,不建议继续维护
当前待实现目标:
陀螺仪漂移优化
底盘跟随PID优化

View File

@@ -1,22 +1,121 @@
{ {
"configurations": [ "configurations": [
{
"name": "windows-cygwin-gcc-x64",
"includePath": [
"${workspaceFolder}/**",
"f:\\桌面\\云台\\Start",
"f:\\桌面\\云台\\Library",
"f:\\桌面\\云台\\System",
"f:\\桌面\\云台\\Algorithm",
"f:\\桌面\\云台\\AHRS",
"f:\\桌面\\云台\\Hardware",
"f:\\桌面\\云台\\Motor",
"f:\\桌面\\云台\\Function",
"f:\\桌面\\云台\\Control",
"f:\\桌面\\云台\\CarBody",
"f:\\桌面\\云台\\User",
"C:\\Keil_v5\\ARM\\ARMCC\\include",
"f:\\桌面\\云台\\Carbody"
],
"defines": [
"USE_STDPERIPH_DRIVER",
"STM32F40_41xxx",
"ARM_MATH_CM4",
"__FPU_PRESENT=1U",
"__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": "linux-gcc-x64",
"cStandard": "${default}",
"cppStandard": "${default}",
"compilerPath": "C:/cygwin64/bin/gcc.exe"
},
{ {
"name": "Target 1", "name": "Target 1",
"includePath": [ "includePath": [
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Start", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Start",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Library", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Library",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\System", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\System",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Algorithm", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Algorithm",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\AHRS", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\AHRS",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Hardware", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Hardware",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Motor", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Motor",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Function", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Function",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Control", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Control",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\CarBody", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\CarBody",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\User", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\User",
"C:\\Keil_v5\\ARM\\ARMCC\\include", "c:\\Users\\LSMushui\\Desktop\\RM\\test-rope\\云台\\云台\\Carbody"
"C:\\Keil_v5\\ARM\\ARMCC\\include\\rw",
"d:\\workplace\\New-Infantry-C-Board-Legacy-1\\云台\\云台\\Carbody"
], ],
"defines": [ "defines": [
"USE_STDPERIPH_DRIVER", "USE_STDPERIPH_DRIVER",

View File

@@ -95,15 +95,13 @@
[info] Log at : 2025/10/23|09:40:31|GMT+0800 [info] Log at : 2025/10/23|09:40:31|GMT+0800
[info] Log at : 2025/12/6|19:19:47|GMT+0800 [info] Log at : 2026/1/11|17:02:33|GMT+0800
[info] Log at : 2025/12/8|13:08:58|GMT+0800 [info] Log at : 2026/1/25|08:06:12|GMT+0800
[info] Log at : 2025/12/10|18:02:38|GMT+0800 [info] Log at : 2026/2/1|23:42:36|GMT+0800
[info] Log at : 2025/12/10|18:02:47|GMT+0800 [info] Log at : 2026/3/9|14:44:08|GMT+0800
[info] Log at : 2025/12/10|18:23:26|GMT+0800 [info] Log at : 2026/3/10|13:56:39|GMT+0800
[info] Log at : 2025/12/11|19:32:44|GMT+0800

View File

@@ -12,7 +12,7 @@
#include "Visual.h" #include "Visual.h"
#include "WaveFiltering_Kalman_Filtering.h" #include "WaveFiltering_Kalman_Filtering.h"
KFP kfp_PITCH={0.02,0,0,0,0.01,0.543};//卡尔曼滤波器结构体 KFP kfp_PITCH={0.02,0,0,0,0.001,0.543};//卡尔曼滤波器结构体
@@ -24,6 +24,8 @@ KFP kfp_PITCH={0.02,0,0,0,0.01,0.543};//卡尔曼滤波器结构体
uint8_t Gimbal_FrictionWheelFlag;//云台小陀螺标志位,云台开摩擦轮标志位 uint8_t Gimbal_FrictionWheelFlag;//云台小陀螺标志位,云台开摩擦轮标志位
extern int KP , KI , KD; extern int KP , KI , KD;
extern float Visual_Yaw,Visual_Pitch;
extern uint8_t Visual_ReceiveFlag;
float use_yaw=0; float use_yaw=0;
@@ -71,14 +73,14 @@ void Gimbal_Init(void)
PID_PositionSetOUTRange(&Gimbal_YawAngleSpeedPID,-30000,30000); PID_PositionSetOUTRange(&Gimbal_YawAngleSpeedPID,-30000,30000);
PID_PositionStructureInit(&Gimbal_PitchAnglePositionPID,0);//Pitch轴陀螺仪闭环 PID_PositionStructureInit(&Gimbal_PitchAnglePositionPID,0);//Pitch轴陀螺仪闭环
PID_PositionSetParameter(&Gimbal_PitchAnglePositionPID,15,0,10); PID_PositionSetParameter(&Gimbal_PitchAnglePositionPID,15,0,100);
PID_PositionSetEkRange(&Gimbal_PitchAnglePositionPID,-1,1); PID_PositionSetEkRange(&Gimbal_PitchAnglePositionPID,-1,1);
PID_PositionSetOUTRange(&Gimbal_PitchAnglePositionPID,-150,150); PID_PositionSetOUTRange(&Gimbal_PitchAnglePositionPID,-200,200);
PID_PositionStructureInit(&Gimbal_PitchAngleSpeedPID,300); PID_PositionStructureInit(&Gimbal_PitchAngleSpeedPID,300);
PID_PositionSetParameter(&Gimbal_PitchAngleSpeedPID,150,0.001,5); PID_PositionSetParameter(&Gimbal_PitchAngleSpeedPID,150,0.001,5);
PID_PositionSetEkRange(&Gimbal_PitchAngleSpeedPID,-5,5); PID_PositionSetEkRange(&Gimbal_PitchAngleSpeedPID,-5,5);
PID_PositionSetOUTRange(&Gimbal_PitchAngleSpeedPID,-60000,60000); PID_PositionSetOUTRange(&Gimbal_PitchAngleSpeedPID,-30000,30000);
PID_PositionStructureInit(&Gimbal_L_FrictionWheelPID,0);//左摩擦轮 PID_PositionStructureInit(&Gimbal_L_FrictionWheelPID,0);//左摩擦轮
PID_PositionSetParameter(&Gimbal_L_FrictionWheelPID,16,0,30); PID_PositionSetParameter(&Gimbal_L_FrictionWheelPID,16,0,30);
@@ -129,16 +131,18 @@ void Gimbal_CleanPID(void)
*/ */
void Gimbal_PitchControl(void) void Gimbal_PitchControl(void)
{ {
float use_pitch=0,lastpitch=0,lastyaw=0; float use_pitch=0;
if(Remote_StartFlag==2)Gimbal_PitchAnglePositionPID.Need_Value=0;//遥控器刚建立连接时,复位Pitch轴角度 if(Remote_StartFlag==2)Gimbal_PitchAnglePositionPID.Need_Value=0;//遥控器刚建立连接时,复位Pitch轴角度
if(((Remote_RxData.Remote_L_UD>1050 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)<1000) )//&& AttitudeAlgorithms_DegRoll<Pitch_GM6020AngleUpperLinit)
if(((Remote_RxData.Remote_L_UD>1050 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)>1040) && GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position>Pitch_GM6020PositionUpperLinit)
{ {
Gimbal_PitchAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate/8192.0f*360.0f;//通过遥控器或者鼠标获取俯仰情况 Gimbal_PitchAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate/8192.0f*360.0f;//通过遥控器或者鼠标获取俯仰情况
//if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle<=Pitch_GM6020PositionUpperLinit) //if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle<=Pitch_GM6020PositionUpperLinit)
//Gimbal_PitchAnglePositionPID.Need_Value=0; //Gimbal_PitchAnglePositionPID.Need_Value=0;
} }
else if(((Remote_RxData.Remote_L_UD<1000 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)>1050) )//&& AttitudeAlgorithms_DegRoll>Pitch_GM6020AngleLowerLinit) else if(((Remote_RxData.Remote_L_UD<1000 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)<1010) && GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position<Pitch_GM6020PositionLowerLinit)
{ {
Gimbal_PitchAnglePositionPID.Need_Value+=Gimbal_LeverSpeedMapRate/8192.0f*360.0f;//通过遥控器或者鼠标获取俯仰情况 Gimbal_PitchAnglePositionPID.Need_Value+=Gimbal_LeverSpeedMapRate/8192.0f*360.0f;//通过遥控器或者鼠标获取俯仰情况
// if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle>=Pitch_GM6020PositionLowerLinit) // if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle>=Pitch_GM6020PositionLowerLinit)
@@ -147,31 +151,30 @@ void Gimbal_PitchControl(void)
if(Remote_RxData.Remote_LS==2 || Remote_RxData.Remote_Mouse_KeyR==1 )//自瞄,补偿角度 if(Remote_RxData.Remote_LS==2 || Remote_RxData.Remote_Mouse_KeyR==1 )//自瞄,补偿角度
{ {
use_pitch=0.5f*Visual_Pitch; use_pitch=1.5f*Visual_Pitch;
use_yaw=0.5f*Visual_Yaw; use_yaw=0.5f*-Visual_Yaw;
if(use_pitch > 10 && use_pitch < -10) use_pitch=0; //防止UART干扰数据移位疯车 //if(Visual_ReceiveFlag==1)UART2_Printf("Y:%f,P:%f\n",Visual_Yaw,Visual_Pitch);//*0.0030518509475997f
if(use_yaw > 10 && use_yaw < -10) use_yaw=0; //何移位?
//pitch //pitch
if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position>Pitch_GM6020PositionUpperLinit && Visual_Pitch>0) if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position<Pitch_GM6020PositionLowerLinit && GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position>Pitch_GM6020PositionUpperLinit && Visual_Pitch!=0)
Gimbal_PitchAnglePositionPID.Need_Value+=(float)use_pitch-lastpitch;//修改了pitch轴自瞄的实现方式 Gimbal_PitchAnglePositionPID.Need_Value=AttitudeAlgorithms_DegRoll-(float)use_pitch;
if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position<Pitch_GM6020PositionLowerLinit && Visual_Pitch<0)
Gimbal_PitchAnglePositionPID.Need_Value+=(float)use_pitch;
use_pitch=0; use_pitch=0;
Remote_RxData.Remote_Mouse_KeyPushR=0; Remote_RxData.Remote_Mouse_KeyPushR=0;
Remote_RxData.Remote_LS=0; Remote_RxData.Remote_LS=0;
//UART2_Printf("Y:%f,P:%f\n",Visual_Yaw,Visual_Pitch);
Visual_Pitch = 0; Visual_Pitch=0;
Visual_Yaw = 0; //提前清除接收到的Yaw防止意外置零 Visual_Yaw=0;
Visual_ReceiveFlag=0; Visual_ReceiveFlag=0;
} }
//串级PID闭环Pitch角 //串级PID闭环Pitch角
PID_PositionCalc(&Gimbal_PitchAnglePositionPID,AttitudeAlgorithms_DegRoll); PID_PositionCalc(&Gimbal_PitchAnglePositionPID,AttitudeAlgorithms_DegRoll);
//Gimbal_PitchAnglePositionPID.OUT=kalmanFilter(&kfp_PITCH,Gimbal_PitchAnglePositionPID.OUT); //Gimbal_PitchAnglePositionPID.OUT=kalmanFilter(&kfp_PITCH,Gimbal_PitchAnglePositionPID.OUT);
Gimbal_PitchAngleSpeedPID.Need_Value=Gimbal_PitchAnglePositionPID.OUT; Gimbal_PitchAngleSpeedPID.Need_Value=Gimbal_PitchAnglePositionPID.OUT;
PID_PositionCalc(&Gimbal_PitchAngleSpeedPID,GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Speed); PID_PositionCalc(&Gimbal_PitchAngleSpeedPID,GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Speed);
} }
void Debug(void) void Debug(void)
@@ -195,24 +198,24 @@ void Gimbal_YawControl(void)
if(Remote_StartFlag==2) if(Remote_StartFlag==2)
Gimbal_YawAnglePositionPID.Need_Value=AttitudeAlgorithms_DegYaw;//遥控器刚建立连接时,复位Yaw轴角度 Gimbal_YawAnglePositionPID.Need_Value=AttitudeAlgorithms_DegYaw;//遥控器刚建立连接时,复位Yaw轴角度
if((Remote_RxData.Remote_L_RL>1050 && RefereeSystem_Status==0) || 1024+PC_Spin*PC_Mouse_RLSensitivity>1050 || use_yaw !=0 )//根据摇杆改变偏航 if((Remote_RxData.Remote_L_RL>1050 && RefereeSystem_Status==0) || 1024+PC_Spin*PC_Mouse_RLSensitivity>1028 || use_yaw !=0 )//根据摇杆改变偏航
{ {
if(PC_Spin==0) if(PC_Spin==0)
Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((Remote_RxData.Remote_L_RL-1024)/660.0f)-(float)use_yaw; Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((Remote_RxData.Remote_L_RL-1024)/660.0f)+(float)use_yaw;
else else
Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*(PC_Spin*PC_Mouse_RLSensitivity/660.0f*2)-(float)use_yaw; Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*(PC_Spin*PC_Mouse_RLSensitivity/660.0f*2)+(float)use_yaw;
} }
else if((Remote_RxData.Remote_L_RL<1000 && RefereeSystem_Status==0) || 1024+PC_Spin*PC_Mouse_RLSensitivity<1000 || use_yaw !=0) else if((Remote_RxData.Remote_L_RL<1000 && RefereeSystem_Status==0) || 1024+PC_Spin*PC_Mouse_RLSensitivity<1022 || use_yaw !=0)
{ {
if(PC_Spin==0) if(PC_Spin==0)
Gimbal_YawAnglePositionPID.Need_Value+=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((1024-Remote_RxData.Remote_L_RL)/660.0f)-(float)use_yaw; Gimbal_YawAnglePositionPID.Need_Value+=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((1024-Remote_RxData.Remote_L_RL)/660.0f)+(float)use_yaw;
else else
Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*(PC_Spin*PC_Mouse_RLSensitivity/660.0f*2)-(float)use_yaw; Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*(PC_Spin*PC_Mouse_RLSensitivity/660.0f*2)+(float)use_yaw;
} }
//Visual_Yaw=0;
use_yaw=0; use_yaw=0;
//串级PID闭环Yaw角 //串级PID闭环Yaw角
PID_PositionCalc(&Gimbal_YawAnglePositionPID,AttitudeAlgorithms_DegYaw); PID_PositionCalc(&Gimbal_YawAnglePositionPID,AttitudeAlgorithms_DegYaw);
Gimbal_YawAngleSpeedPID.Need_Value=Gimbal_YawAnglePositionPID.OUT; Gimbal_YawAngleSpeedPID.Need_Value=Gimbal_YawAnglePositionPID.OUT;

View File

@@ -10,30 +10,24 @@
#include "PID.h" #include "PID.h"
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
<<<<<<< HEAD
#include "BMI088.h" #include "BMI088.h"
=======
#include <math.h>
>>>>>>> a6eb3f5ed5724a064e8286c2f8cd26fa9d4816e5
uint32_t Visual_Time=0;//视觉数据send时间 uint32_t Visual_Time=0;//视觉数据send时间
uint32_t Time_Out=0;//超时时间 uint32_t Time_Out=0;//超时时间
uint32_t SystemCoreClock84=84000000; //84M uint32_t SystemCoreClock84=84000000; //84M
int KP , KI , KD; int KP , KI , KD;
int yaw=0 , pitch=0; int yaw=0 , pitch=0 , roll=0 ,delay=0;
static char dataType; // 存储类型字段('r'/'b'/'u'
uint8_t USART_RX_BUF[100];//视觉数据jieshou缓冲区 uint8_t USART_RX_BUF[100];//视觉数据jieshou缓冲区
extern PID_PositionInitTypedef Gimbal_PitchAnglePositionPID,Gimbal_YawAnglePositionPID,Gimbal_YawAngleSpeedPID; extern PID_PositionInitTypedef Gimbal_YawAnglePositionPID,Gimbal_YawAngleSpeedPID,Gimbal_PitchAnglePositionPID,Gimbal_PitchAngleSpeedPID;//Pitch轴GM6020电机PID;
extern float BMI088_GyroZeroOffset[3],BMI088_GyroWithoutOffset[3];
int16_t Visual_GetYaw,Visual_GetPitch,Visual_GetRoll,Visual_GetDelay;//视觉数据偏航角,视觉数据俯仰角 int16_t Visual_GetYaw,Visual_GetPitch,Visual_GetRoll,Visual_GetDelay;//视觉数据偏航角,视觉数据俯仰角
float Visual_Yaw,Visual_Pitch; float Visual_Yaw,Visual_Pitch;
uint8_t Visual_RxHEXPacket[4],Visual_ReceiveFlag;//视觉数据接收缓冲区,视觉数据接收完成标志位 uint8_t Visual_RxHEXPacket[4],Visual_ReceiveFlag;//视觉数据接收缓冲区,视觉数据接收完成标志位
static uint8_t pitch_need_acc = 0;
/* /*
*函数简介:视觉初始化 *函数简介:视觉初始化
*参数说明:无 *参数说明:无
@@ -50,15 +44,16 @@ void Visual_Init(void)
} }
void Visual_SendData(void) void Visual_SendData(void)
{ {
/*SendData MCUMessage; /*
SendData MCUMessage;
MCUMessage.curr_yaw=AttitudeAlgorithms_DegYaw; MCUMessage.curr_yaw=AttitudeAlgorithms_DegYaw;
MCUMessage.curr_pitch=AttitudeAlgorithms_DegPitch; MCUMessage.curr_pitch=AttitudeAlgorithms_DegPitch;
MCUMessage.state=(uint8_t)('a'); MCUMessage.state=(uint8_t)('a');
MCUMessage.mark=(uint8_t)(0); MCUMessage.mark=(uint8_t)(0);
MCUMessage.anti_top=(uint8_t)(0); MCUMessage.anti_top=(uint8_t)(0);
MCUMessage.enemy_color=(uint8_t)(1); MCUMessage.enemy_color=(uint8_t)(1);
MCUMessage.delta_x=(uint8_t)(1); MCUMessage.delta_x=(uint8_t)(0);
MCUMessage.delta_y=(uint8_t)(1); MCUMessage.delta_y=(uint8_t)(0);
UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage));*/ UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage));*/
//UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage)); //UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage));
/* /*
@@ -66,46 +61,33 @@ void Visual_SendData(void)
UART2_SendByte((float)AttitudeAlgorithms_DegRoll); UART2_SendByte((float)AttitudeAlgorithms_DegRoll);
//UART2_SendByte((float)AttitudeAlgorithms_DegPitch); //UART2_SendByte((float)AttitudeAlgorithms_DegPitch);
UART2_SendByte((uint8_t)0); //UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)'a'); UART2_SendByte((uint8_t)'a');
UART2_SendByte((uint8_t)0); UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)0); UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)1); UART2_SendByte((uint8_t)1);
UART2_SendByte((uint8_t)1); UART2_SendByte((uint8_t)0);
*/ UART2_SendByte((uint8_t)0);
//UART2_Printf("%d,%d,%f,%f\n",GM6020_MotorStatus[0].Speed,GM6020_MotorStatus[0].Angle,Gimbal_YawAnglePositionPID.OUT,Gimbal_YawAngleSpeedPID.OUT); */
/*
UART2_Printf("%lld",GM6020_MotorStatus[GM6020_2-0x205].Position);
UART2_Printf(",%f",Gimbal_PitchAnglePositionPID.Need_Value);
UART2_Printf(",%f",Gimbal_PitchAngleSpeedPID.Need_Value);
UART2_Printf(",%f\n",Gimbal_PitchAngleSpeedPID.OUT);
*/
UART2_Printf("%f %f %c %d %d %d %d %d\n",AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegYaw,'a',0,0,1,0,0);
<<<<<<< HEAD
//UART2_Printf("%f,%f,%f\n",AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegYaw,BMI088_Temperature);
if(Visual_Pitch !=0 || Visual_Yaw != 0) UART2_Printf("%f,%f\n",Visual_Pitch,Visual_Yaw);
=======
//UART2_Printf("%d,%f,%f\n",Visual_ReceiveFlag,Visual_Yaw,Visual_Pitch);
>>>>>>> a6eb3f5ed5724a064e8286c2f8cd26fa9d4816e5
//UART2_SendByte((uint8_t)'\n'); //UART2_SendByte((uint8_t)'\n');
//*if(Visual_ReceiveFlag == 1) //if(Visual_ReceiveFlag == 1)
//UART2_Printf("%f %f %f %f \n",Visual_Yaw,Visual_Pitch,Visual_GetRoll,Visual_GetDelay);//*0.0030518509475997f*/ //UART2_Printf("Y:%f,P:%f\n",Visual_Yaw,Visual_Pitch);//*0.0030518509475997f
//if(Visual_ReceiveFlag == 1) //if(Visual_ReceiveFlag == 1)
//UART2_Printf("%f %f %f %f\n",Visual_Yaw,Visual_Pitch,AttitudeAlgorithms_DegYaw);//*0.0030518509475997f //UART2_Printf("%f %f %f %f\n",Visual_Yaw,Visual_Pitch,AttitudeAlgorithms_DegYaw);//*0.0030518509475997f
// if (abs(Gimbal_PitchAnglePositionPID.Need_Value)>=20){
// pitch_need_acc++;
// if (pitch_need_acc >= 40) {
// pitch_need_acc = 0;
// Gimbal_PitchAnglePositionPID.Need_Value *= 0.95f;
// }
// }
if (Gimbal_PitchAnglePositionPID.Need_Value>=8)
{
Gimbal_PitchAnglePositionPID.Need_Value=8;
}
else if(Gimbal_PitchAnglePositionPID.Need_Value<=-22)
{
Gimbal_PitchAnglePositionPID.Need_Value=-22;
}
UART2_Printf("%f\n",Gimbal_PitchAnglePositionPID.Need_Value);
@@ -134,7 +116,132 @@ void USART1_IRQHandler(void)
USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除接收中断标志位 USART_ClearITPendingBit(USART1,USART_IT_RXNE);//清除接收中断标志位
} }
// 全局变量(需在.h文件中声明
uint8_t Visual_ReceiveFlag = 0; // 接收完成标志
// 静态变量(函数内部状态)
static char Visual_RxBuffer[32]; // 接收缓冲区(足够容纳最长帧)
static uint8_t RxState = 0; // 状态机0-等待s1-接收数据2-解析
static uint8_t RxIndex = 0; // 缓冲区索引
static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
//Visual_Yaw = -(float)yaw;
//Visual_Pitch = -(float)pitch;
// 全局变量(需在.h文件中声明
char Visual_Type = '\0'; // 存储类型r/b/u
void Visual_Trans(void) { void Visual_Trans(void) {
// 静态变量(函数内部状态)
static char Visual_RxBuffer[32]; // 接收缓冲区(足够容纳最长帧)
static uint8_t RxState = 0; // 状态机0-等待#1-接收数据2-解析
static uint8_t RxIndex = 0; // 缓冲区索引
static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
// 每次调用处理一个UART接收字节UART2_RxData为当前接收的字节
uint8_t rx_byte = UART2_RxData;
// 接收新数据时重置超时计时器
RxTimeoutTick = 0;
switch (RxState) {
case 0: // 等待帧头's'
if (rx_byte == 's') {
RxState = 1;
RxIndex = 0;
memset(Visual_RxBuffer, 0, sizeof(Visual_RxBuffer)); // 清空缓冲区
}
break;
case 1: // 接收有效数据(直到遇到帧尾'e'
if (rx_byte == 'e') {
RxState = 2;
} else {
// 限制缓冲区大小防止溢出预留1字节给结束符'\0'
if (RxIndex < sizeof(Visual_RxBuffer) - 1) {
Visual_RxBuffer[RxIndex++] = rx_byte;
} else {
// 缓冲区满,强制复位(防止内存溢出)
RxState = 0;
RxIndex = 0;
}
}
break;
case 2: // 解析接收的字符串
{
// 有效数据格式:"207 -4 0 0"需包含4个字段
char *token = strtok(Visual_RxBuffer, " "); // 按空格分割
uint8_t field_idx = 0;
uint8_t parse_ok = 1; // 解析成功标志
char type = '\0';
while (token != NULL && field_idx < 4) { // 只处理前4个字段
switch (field_idx) {
case 0: // 校验包头's'ASCII0x73
yaw = atoi(token);
break;
case 1: // 提取类型r/b/u
pitch = atoi(token);
break;
case 2: // 转换yaw字符串→int
roll = atoi(token);
break;
case 3: // 转换pitch字符串→int
delay = atoi(token);
break;
}
token = strtok(NULL, " ");
field_idx++;
}
// 解析成功的条件:字段完整且包头/类型正确
if (parse_ok && field_idx == 4) {
Visual_Type = type;
Visual_GetYaw = yaw;
Visual_GetPitch = pitch;
// 角度转换(根据实际需求调整系数)
Visual_Yaw = (float)yaw * 0.03051850947599f;
Visual_Pitch = (float)pitch * 0.03051850947599f;
Visual_ReceiveFlag = 1; // 置位完成标志
}
// 解析完成,回到初始状态
RxState = 0;
RxIndex = 0;
}
break;
default:
// 异常状态复位
RxState = 0;
RxIndex = 0;
break;
}
}
/*
void Visual_Trans(void) {
// 全局变量(需在.h文件中声明
uint8_t Visual_ReceiveFlag = 0; // 接收完成标志
static char dataType; // 存储类型字段('r'/'b'/'u'
// 静态变量(函数内部状态)
static char Visual_RxBuffer[32]; // 接收缓冲区(足够容纳最长帧)
static uint8_t RxState = 0; // 状态机0-等待s1-接收数据2-解析
static uint8_t RxIndex = 0; // 缓冲区索引
static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
//Visual_Yaw = -(float)yaw; //Visual_Yaw = -(float)yaw;
//Visual_Pitch = -(float)pitch; //Visual_Pitch = -(float)pitch;
@@ -146,7 +253,7 @@ char Visual_Type = '\0'; // 存储类型r/b/u
uint8_t Visual_ReceiveFlag = 0; // 接收完成标志 uint8_t Visual_ReceiveFlag = 0; // 接收完成标志
// 静态变量(函数内部状态) // 静态变量(函数内部状态)
static char Visual_RxBuffer[64]; // 接收缓冲区(足够容纳最长帧) static char Visual_RxBuffer[32]; // 接收缓冲区(足够容纳最长帧)
static uint8_t RxState = 0; // 状态机0-等待#1-接收数据2-解析 static uint8_t RxState = 0; // 状态机0-等待#1-接收数据2-解析
static uint8_t RxIndex = 0; // 缓冲区索引 static uint8_t RxIndex = 0; // 缓冲区索引
static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒) static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
@@ -225,8 +332,6 @@ static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
Visual_GetPitch = pitch; Visual_GetPitch = pitch;
// 角度转换(根据实际需求调整系数) // 角度转换(根据实际需求调整系数)
// Visual_Yaw = -(float)yaw * 0.03051850947599f;
// Visual_Pitch = -(float)pitch * 0.03051850947599f;
Visual_Yaw = (float)yaw * 0.03051850947599f; Visual_Yaw = (float)yaw * 0.03051850947599f;
Visual_Pitch = (float)pitch * 0.03051850947599f; Visual_Pitch = (float)pitch * 0.03051850947599f;
@@ -246,13 +351,10 @@ static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
break; break;
} }
} }
*/
/* /*
void Visual_Trans(void){ void Visual_Trans(void){
static int Visual_RxHEXPacket[20]; static int Visual_RxHEXPacket[20];
//char Message[10]; //char Message[10];
@@ -273,7 +375,6 @@ void Visual_Trans(void){
{ {
Visual_RxHEXPacket[pRxHEXState]=UART2_RxData;//接收数据 Visual_RxHEXPacket[pRxHEXState]=UART2_RxData;//接收数据
if(pRxHEXState==7)//接收数据长度达到3 if(pRxHEXState==7)//接收数据长度达到3
{ {
@@ -286,7 +387,6 @@ void Visual_Trans(void){
pRxHEXState++; pRxHEXState++;
} }
} }
else if(RxHEXState==2)//模式2-等待包尾 else if(RxHEXState==2)//模式2-等待包尾
@@ -299,20 +399,19 @@ void Visual_Trans(void){
Visual_GetPitch=((uint8_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3]); Visual_GetPitch=((uint8_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3]);
Visual_GetRoll=((uint8_t)Visual_RxHEXPacket[4]<<8 | Visual_RxHEXPacket[5]); Visual_GetRoll=((uint8_t)Visual_RxHEXPacket[4]<<8 | Visual_RxHEXPacket[5]);
Visual_GetDelay=((uint8_t)Visual_RxHEXPacket[6]<<8 | Visual_RxHEXPacket[7]); Visual_GetDelay=((uint8_t)Visual_RxHEXPacket[6]<<8 | Visual_RxHEXPacket[7]);
Visual_Pitch=Visual_GetPitch*0.003051850947599f+Visual_GetRoll*0.049f/(30.0f*3.1415926535f); Visual_Pitch=(Visual_GetPitch)*0.0005051850947599f/*+Visual_GetRoll*0.049f/(30.0f*3.1415926535f)*/;
Visual_Yaw=-Visual_GetYaw*0.003051850947599f; // Visual_Yaw=(Visual_GetYaw)*0.0003051850947599f;
// UART2_Printf("0x%.2x 0x%.2x\n",Visual_RxHEXPacket[0],Visual_RxHEXPacket[1]); //UART2_Printf("0x%.2x 0x%.2x\n",Visual_RxHEXPacket[0],Visual_RxHEXPacket[1]);
//Visual_Yaw=(int16_t)((uint16_t)Visual_RxHEXPacket[0]<<8 | Visual_RxHEXPacket[1])*0.01f; //Visual_Yaw=(int16_t)((uint16_t)Visual_RxHEXPacket[0]<<8 | Visual_RxHEXPacket[1])*0.01f;
//Visual_Pitch=(int16_t)((uint16_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3])*0.01f; //Visual_Pitch=(int16_t)((uint16_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3])*0.01f;
Visual_ReceiveFlag=1; //Visual_ReceiveFlag=1;
RxHEXState=0;//回到模式0 //RxHEXState=0;//回到模式0
//Buzzer_Time(M4,1000);//蜂鸣器发声 //Buzzer_Time(M4,1000);//蜂鸣器发声
} //}
} // }
} //}
*/

View File

@@ -6,8 +6,12 @@ extern uint8_t Visual_ReceiveFlag;//视觉数据接收完成标志位
#define SYSTICK_1MS ((uint32_t)1000) #define SYSTICK_1MS ((uint32_t)1000)
#define ENEMY_BLUE 0
#define ENEMY_RED 1
///发送数据 ///发送数据
#pragma pack(push, 1)
typedef struct typedef struct
{ {
float curr_yaw; // 当前云台yaw角度 float curr_yaw; // 当前云台yaw角度
@@ -19,6 +23,7 @@ typedef struct
int delta_x; // 能量机关x轴补偿量 int delta_x; // 能量机关x轴补偿量
int delta_y; // 能量机关y轴补偿量 int delta_y; // 能量机关y轴补偿量
}SendData; }SendData;
#pragma pack(pop)
//接受数据 //接受数据
typedef struct typedef struct

View File

@@ -10,7 +10,7 @@
*/ */
float kalmanFilter(KFP *kfp,float input) float kalmanFilter(KFP *kfp,float input)
{ {
float pDst,pDst1=1.0f; //float pDst,pDst1=1.0f;
//预测协方差方程k时刻系统估算协方差 = k-1时刻的系统协方差 + 过程噪声协方差 //预测协方差方程k时刻系统估算协方差 = k-1时刻的系统协方差 + 过程噪声协方差
//arm_add_f32(&kfp->LastP, &kfp->Q, &kfp->Now_P, 1); //arm_add_f32(&kfp->LastP, &kfp->Q, &kfp->Now_P, 1);
kfp->Now_P = kfp->LastP + kfp->Q; kfp->Now_P = kfp->LastP + kfp->Q;
@@ -29,4 +29,4 @@ float kalmanFilter(KFP *kfp,float input)
kfp->LastP = (1-kfp->Kg) * kfp->Now_P; kfp->LastP = (1-kfp->Kg) * kfp->Now_P;
return kfp->out; return kfp->out;
} }

View File

@@ -5,14 +5,43 @@
#include "ahrs_lib.h" #include "ahrs_lib.h"
#include "WaveFiltering_Kalman_Filtering.h" #include "WaveFiltering_Kalman_Filtering.h"
KFP kfp={0.02,0,0,0,0.01,0.543};//卡尔曼滤波器结构体 KFP kfp_Pitch={0.02,0,0,0,0.01,0.543};//陀螺仪Pitch轴卡尔曼滤波器结构体
KFP kfp_Yaw={0.02,0,0,0,0.01,0.543};//陀螺仪yaw轴卡尔曼滤波器结构体
//KFP kfp_Pitch={0.02,0,0,0,0.01,0.96};//陀螺仪Pitch轴卡尔曼滤波器结构体
//KFP kfp_Yaw={0.02,0,0,0,0.01,0.96};//陀螺仪yaw轴卡尔曼滤波器结构体
float AttitudeAlgorithms_q[4];//姿态解算四元数 float AttitudeAlgorithms_q[4];//姿态解算四元数
float AttitudeAlgorithms_RadYaw,AttitudeAlgorithms_RadPitch,AttitudeAlgorithms_RadRoll;//弧度制角度 float AttitudeAlgorithms_RadYaw,AttitudeAlgorithms_RadPitch,AttitudeAlgorithms_RadRoll;//弧度制角度
float AttitudeAlgorithms_DegYaw,AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegRoll;//角度制角度 float AttitudeAlgorithms_DegYaw,AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegRoll;//角度制角度
float BMI088_GyroZeroOffset[3];//陀螺仪初始零偏
float BMI088_GyroWithoutOffset[3];//消除零偏后的陀螺仪数据
float fake_IST8310[3]={0,0,0};
/*
*函数简介:BMI088清除零偏
*参数说明:无
*返回类型:无
*备注:采集前100次数据取平均值消除零偏
*/
void ZeroOffset_Calibration(void)
{
uint16_t BMI088_CountFlag;
for (BMI088_CountFlag=0; BMI088_CountFlag < 1000; BMI088_CountFlag++)
{
BMI088_GyroZeroOffset[0]=BMI088_GyroZeroOffset[0]+BMI088_Gyro[0];
}
BMI088_GyroZeroOffset[0]=BMI088_GyroZeroOffset[0]/1000;
for (BMI088_CountFlag=0; BMI088_CountFlag < 1000; BMI088_CountFlag++)
{
BMI088_GyroZeroOffset[1]=BMI088_GyroZeroOffset[1]+BMI088_Gyro[1];
}
BMI088_GyroZeroOffset[1]=BMI088_GyroZeroOffset[1]/1000;
}
/* /*
*函数简介:姿态解算初始化 *函数简介:姿态解算初始化
*参数说明:无 *参数说明:无
@@ -49,6 +78,8 @@ void AttitudeAlgorithms_Init(void)
IST8310_Init();//初始化IST8310 IST8310_Init();//初始化IST8310
BMI088_Init();//初始化BMI088 BMI088_Init();//初始化BMI088
AHRS_init(AttitudeAlgorithms_q,BMI088_Accel,IST8310_MagneticField);//AHRS初始化 AHRS_init(AttitudeAlgorithms_q,BMI088_Accel,IST8310_MagneticField);//AHRS初始化
TIM_Cmd(TIM11,ENABLE);//启动定时器 TIM_Cmd(TIM11,ENABLE);//启动定时器
@@ -70,7 +101,13 @@ void TIM1_TRG_COM_TIM11_IRQHandler(void)
{ {
TIM_ClearITPendingBit(TIM11,TIM_IT_Update);//清除标志位 TIM_ClearITPendingBit(TIM11,TIM_IT_Update);//清除标志位
AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_Gyro,BMI088_Accel,IST8310_MagneticField); BMI088_GyroWithoutOffset[0]=BMI088_Gyro[0]+BMI088_GyroZeroOffset[0];
BMI088_GyroWithoutOffset[1]=BMI088_Gyro[1]+BMI088_GyroZeroOffset[1];
BMI088_GyroWithoutOffset[2]=BMI088_Gyro[2];
//debug
AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_GyroWithoutOffset,BMI088_Accel,IST8310_MagneticField);
//AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_GyroWithoutOffset,BMI088_Accel,fake_IST8310);
get_angle(AttitudeAlgorithms_q,&AttitudeAlgorithms_RadYaw,&AttitudeAlgorithms_RadPitch,&AttitudeAlgorithms_RadRoll); get_angle(AttitudeAlgorithms_q,&AttitudeAlgorithms_RadYaw,&AttitudeAlgorithms_RadPitch,&AttitudeAlgorithms_RadRoll);
AttitudeAlgorithms_LastDegYaw=AttitudeAlgorithms_ThisDegYaw; AttitudeAlgorithms_LastDegYaw=AttitudeAlgorithms_ThisDegYaw;
@@ -78,8 +115,8 @@ void TIM1_TRG_COM_TIM11_IRQHandler(void)
AttitudeAlgorithms_DegPitch=AttitudeAlgorithms_RadPitch*57.295779513082320876798154814105f;//转换为角度制 AttitudeAlgorithms_DegPitch=AttitudeAlgorithms_RadPitch*57.295779513082320876798154814105f;//转换为角度制
AttitudeAlgorithms_DegRoll=AttitudeAlgorithms_RadRoll*57.295779513082320876798154814105f;//转换为角度制 AttitudeAlgorithms_DegRoll=AttitudeAlgorithms_RadRoll*57.295779513082320876798154814105f;//转换为角度制
AttitudeAlgorithms_DegPitch=kalmanFilter(&kfp,AttitudeAlgorithms_DegPitch); AttitudeAlgorithms_DegPitch=kalmanFilter(&kfp_Pitch,AttitudeAlgorithms_DegPitch);
AttitudeAlgorithms_DegRoll=kalmanFilter(&kfp,AttitudeAlgorithms_DegRoll); AttitudeAlgorithms_DegRoll=kalmanFilter(&kfp_Yaw,AttitudeAlgorithms_DegRoll);
if(AttitudeAlgorithms_YawFirstFlag==0)//获取带圈数的角度制偏航角 if(AttitudeAlgorithms_YawFirstFlag==0)//获取带圈数的角度制偏航角

View File

@@ -5,5 +5,6 @@ extern float AttitudeAlgorithms_RadYaw,AttitudeAlgorithms_RadPitch,AttitudeAlgor
extern float AttitudeAlgorithms_DegYaw,AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegRoll;//角度制角度 extern float AttitudeAlgorithms_DegYaw,AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegRoll;//角度制角度
void AttitudeAlgorithms_Init(void);//姿态解算初始化 void AttitudeAlgorithms_Init(void);//姿态解算初始化
void ZeroOffset_Calibration(void);
#endif #endif

View File

@@ -343,6 +343,7 @@ void BMI088_Init(void)
BMI088_SPI_AccelWriteRegister(BMI088_INT1_INT2_MAP_DATA,0x04);BMI088_Delay_us(300);//配置INT1中断映射为数据就绪中断 BMI088_SPI_AccelWriteRegister(BMI088_INT1_INT2_MAP_DATA,0x04);BMI088_Delay_us(300);//配置INT1中断映射为数据就绪中断
BMI088_SPI_GyroWriteRegister(BMI088_GYRO_RANGE,0x00);BMI088_Delay_us(300);//配置陀螺仪量程±2000°/s BMI088_SPI_GyroWriteRegister(BMI088_GYRO_RANGE,0x00);BMI088_Delay_us(300);//配置陀螺仪量程±2000°/s
//BMI088_SPI_GyroWriteRegister(BMI088_GYRO_BANDWIDTH,0x81);BMI088_Delay_us(300);
BMI088_SPI_GyroWriteRegister(BMI088_GYRO_BANDWIDTH,0x82);BMI088_Delay_us(300);//配置陀螺仪滤波器带宽116Hz,1000Hz输出(写此寄存器,写入数据最高位需要为1) BMI088_SPI_GyroWriteRegister(BMI088_GYRO_BANDWIDTH,0x82);BMI088_Delay_us(300);//配置陀螺仪滤波器带宽116Hz,1000Hz输出(写此寄存器,写入数据最高位需要为1)
BMI088_SPI_GyroWriteRegister(BMI088_GYRO_LPM1,0x00);BMI088_Delay_us(300);//配置陀螺仪主电源模式为正常模式 BMI088_SPI_GyroWriteRegister(BMI088_GYRO_LPM1,0x00);BMI088_Delay_us(300);//配置陀螺仪主电源模式为正常模式
BMI088_SPI_GyroWriteRegister(BMI088_GYRO_INT_CTRL,0x80);BMI088_Delay_us(300);//使能陀螺仪数据就绪中断 BMI088_SPI_GyroWriteRegister(BMI088_GYRO_INT_CTRL,0x80);BMI088_Delay_us(300);//使能陀螺仪数据就绪中断

Binary file not shown.

View File

@@ -17,114 +17,22 @@ Library Manager: ArmAr.exe V5.06 update 7 (build 960)
Hex Converter: FromElf.exe V5.06 update 7 (build 960) Hex Converter: FromElf.exe V5.06 update 7 (build 960)
CPU DLL: SARMCM3.DLL V5.43.0.0 CPU DLL: SARMCM3.DLL V5.43.0.0
Dialog DLL: DCM.DLL V1.17.5.0 Dialog DLL: DCM.DLL V1.17.5.0
Target DLL: CMSIS_AGDI.dll V1.33.24.0 Target DLL: STLink\ST-LINKIII-KEIL_SWO.dll V3.3.1.0
Dialog DLL: TCM.DLL V1.56.6.0 Dialog DLL: TCM.DLL V1.56.6.0
<h2>Project:</h2> <h2>Project:</h2>
C:\Users\LSMushui\Desktop\RM\New-Infantry-C-Board-Legacy\<5C><>̨\<5C><>̨\Project.uvprojx C:\Users\LSMushui\Desktop\RM\workspace\Infantry-C-Board-from-PG\<5C><>̨\<5C><>̨\Project.uvprojx
Project File Date: 11/02/2025 Project File Date: 03/24/2026
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Target 1' Build target 'Target 1'
assembling startup_stm32f40_41xxx.s...
compiling misc.c...
compiling system_stm32f4xx.c...
compiling stm32f4xx_crc.c...
compiling stm32f4xx_adc.c...
compiling stm32f4xx_cryp_tdes.c...
compiling stm32f4xx_cryp.c...
compiling stm32f4xx_can.c...
compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_flash_ramfunc.c...
compiling stm32f4xx_cryp_aes.c...
compiling stm32f4xx_cec.c...
compiling stm32f4xx_fmpi2c.c...
compiling stm32f4xx_dac.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_dfsdm.c...
compiling stm32f4xx_exti.c...
compiling stm32f4xx_dbgmcu.c...
compiling stm32f4xx_gpio.c...
compiling stm32f4xx_dma2d.c...
compiling stm32f4xx_fsmc.c...
compiling stm32f4xx_dma.c...
compiling stm32f4xx_flash.c...
compiling stm32f4xx_hash_md5.c...
compiling stm32f4xx_hash.c...
compiling stm32f4xx_hash_sha1.c...
compiling stm32f4xx_lptim.c...
compiling stm32f4xx_i2c.c...
compiling stm32f4xx_iwdg.c...
compiling stm32f4xx_pwr.c...
compiling stm32f4xx_qspi.c...
compiling stm32f4xx_ltdc.c...
compiling stm32f4xx_rng.c...
compiling stm32f4xx_rcc.c...
compiling stm32f4xx_sai.c...
compiling stm32f4xx_sdio.c...
compiling stm32f4xx_spdifrx.c...
compiling Delay.c...
compiling TIM.c...
compiling stm32f4xx_syscfg.c...
compiling stm32f4xx_wwdg.c...
compiling AHRS_middleware.c...
compiling user_lib.c...
compiling stm32f4xx_spi.c...
compiling stm32f4xx_usart.c...
compiling UART.c...
compiling stm32f4xx_rtc.c...
compiling stm32f4xx_tim.c...
compiling WaveFiltering_Kalman_Filtering.c...
Control\WaveFiltering_Kalman_Filtering.c(13): warning: #177-D: variable "pDst" was declared but never referenced
float pDst,pDst1=1.0f;
Control\WaveFiltering_Kalman_Filtering.c(13): warning: #177-D: variable "pDst1" was declared but never referenced
float pDst,pDst1=1.0f;
Control\WaveFiltering_Kalman_Filtering.c(32): warning: #1-D: last line of file ends without a newline
Control\WaveFiltering_Kalman_Filtering.c: 3 warnings, 0 errors
compiling MyI2C.c...
compiling LED.c...
compiling Buzzer.c...
compiling CAN.c...
compiling Remote.c...
compiling IST8310.c...
compiling BMI088.c...
compiling Laser.c...
compiling M3508.c...
compiling GM6020.c...
compiling M2006.c...
compiling LinkCheck.c...
compiling Warming.c...
compiling CToC.c... compiling CToC.c...
compiling CloseLoopControl.c...
compiling PID.c...
compiling AttitudeAlgorithms.c...
compiling IMUTemperatureControl.c...
compiling RefereeSystem.c...
compiling Gimbal.c... compiling Gimbal.c...
CarBody\Gimbal.c(132): warning: #177-D: variable "lastyaw" was declared but never referenced
float use_pitch=0,lastpitch=0,lastyaw=0;
CarBody\Gimbal.c: 1 warning, 0 errors
compiling Visual.c...
CarBody\Visual.c(117): warning: #550-D: variable "Visual_Type" was set but never used
char Visual_Type = '\0'; // 存储类型r/b/u<><75>?
CarBody\Visual.c(120): warning: #550-D: variable "Visual_ReceiveFlag" was set but never used
uint8_t Visual_ReceiveFlag = 0; // 接收完成标志
CarBody\Visual.c(126): warning: #550-D: variable "RxTimeoutTick" was set but never used
static uint32_t RxTimeoutTick = 0;// 超时计时器毫秒<E6AFAB><E7A792>?
CarBody\Visual.c(290): warning: #1-D: last line of file ends without a newline
*/
CarBody\Visual.c(20): warning: #177-D: variable "dataType" was declared but never referenced
static char dataType; // 存储类型字段<E5AD97><E6AEB5>?'r'/'b'/'u'<27><>?
CarBody\Visual.c: 5 warnings, 0 errors
compiling Keyboard.c...
compiling stm32f4xx_it.c...
compiling main.c... compiling main.c...
linking... linking...
Program Size: Code=32220 RO-data=1372 RW-data=580 ZI-data=3372 Program Size: Code=32184 RO-data=1372 RW-data=616 ZI-data=3408
".\Objects\Project.axf" - 0 Error(s), 9 Warning(s). ".\Objects\Project.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2> <h2>Software Packages used:</h2>
@@ -136,7 +44,7 @@ Package Vendor: Keil
<h2>Collection of Component include folders:</h2> <h2>Collection of Component include folders:</h2>
<h2>Collection of Component Files used:</h2> <h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:05 Build Time Elapsed: 00:00:02
</pre> </pre>
</body> </body>
</html> </html>

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Project.axf]</title></head> <title>Static Call Graph - [.\Objects\Project.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image .\Objects\Project.axf</H1><HR> <H1>Static Call Graph for image .\Objects\Project.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Mon Jan 12 16:05:33 2026 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Sat Mar 28 17:36:53 2026
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 280 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 280 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>
@@ -388,12 +388,6 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset <BR><BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL> </UL>
<P><STRONG><a name="[14a]"></a>strcmp</STRONG> (Thumb, 28 bytes, Stack size 8 bytes, strcmp.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = strcmp
</UL>
<BR>[Called By]<UL><LI><a href="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_Trans
</UL>
<P><STRONG><a name="[149]"></a>strtok</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, strtok.o(.text)) <P><STRONG><a name="[149]"></a>strtok</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, strtok.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = strtok <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = strtok
</UL> </UL>
@@ -434,8 +428,8 @@ Global Symbols
<P><STRONG><a name="[168]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED) <P><STRONG><a name="[168]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[15a]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED) <P><STRONG><a name="[159]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR><BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[63]"></a>__aeabi_uldivmod</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text)) <P><STRONG><a name="[63]"></a>__aeabi_uldivmod</STRONG> (Thumb, 98 bytes, Stack size 40 bytes, uldiv.o(.text))
@@ -444,8 +438,8 @@ Global Symbols
<BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr <BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl <LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ldivmod <LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ldivmod
</UL> </UL>
@@ -487,7 +481,7 @@ Global Symbols
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub <BR>[Called By]<UL><LI><a href="#[76]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_drsub
<LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub <LI><a href="#[75]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dsub
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<P><STRONG><a name="[75]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED) <P><STRONG><a name="[75]"></a>__aeabi_dsub</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED)
@@ -501,24 +495,24 @@ Global Symbols
<P><STRONG><a name="[77]"></a>__aeabi_dmul</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text), UNUSED) <P><STRONG><a name="[77]"></a>__aeabi_dmul</STRONG> (Thumb, 228 bytes, Stack size 48 bytes, dmul.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue <BR><BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <BR>[Called By]<UL><LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<P><STRONG><a name="[78]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED) <P><STRONG><a name="[78]"></a>__aeabi_ddiv</STRONG> (Thumb, 222 bytes, Stack size 32 bytes, ddiv.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round <BR><BR>[Calls]<UL><LI><a href="#[74]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_round
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <BR>[Called By]<UL><LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<P><STRONG><a name="[79]"></a>__aeabi_d2ulz</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED) <P><STRONG><a name="[79]"></a>__aeabi_d2ulz</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, dfixul.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr <BR><BR>[Calls]<UL><LI><a href="#[6e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsr
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl <LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <BR>[Called By]<UL><LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<P><STRONG><a name="[157]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED) <P><STRONG><a name="[156]"></a>__aeabi_cdrcmple</STRONG> (Thumb, 48 bytes, Stack size 0 bytes, cdrcmple.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <BR><BR>[Called By]<UL><LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<P><STRONG><a name="[61]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) <P><STRONG><a name="[61]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
@@ -636,7 +630,7 @@ Global Symbols
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_init <BR>[Called By]<UL><LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_init
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quat_normalization <LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;quat_normalization
<LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki <LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_comple_filter <LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_comple_filter
</UL> </UL>
@@ -808,7 +802,7 @@ Global Symbols
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_InternalClockConfig <LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_InternalClockConfig
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_Cmd <LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_Cmd
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init <BR>[Called By]<UL><LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init
</UL> </UL>
<P><STRONG><a name="[ba]"></a>Buzzer_ON</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, buzzer.o(i.Buzzer_ON)) <P><STRONG><a name="[ba]"></a>Buzzer_ON</STRONG> (Thumb, 50 bytes, Stack size 8 bytes, buzzer.o(i.Buzzer_ON))
@@ -1302,8 +1296,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM6_DAC_IRQHandler <BR>[Called By]<UL><LI><a href="#[40]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM6_DAC_IRQHandler
</UL> </UL>
<P><STRONG><a name="[f2]"></a>Gimbal_PitchControl</STRONG> (Thumb, 540 bytes, Stack size 24 bytes, gimbal.o(i.Gimbal_PitchControl)) <P><STRONG><a name="[f2]"></a>Gimbal_PitchControl</STRONG> (Thumb, 406 bytes, Stack size 16 bytes, gimbal.o(i.Gimbal_PitchControl))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = Gimbal_PitchControl <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Gimbal_PitchControl
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_PositionCalc <BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_PositionCalc
</UL> </UL>
@@ -1478,7 +1472,7 @@ Global Symbols
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init <LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_AHB1PeriphClockCmd <LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_AHB1PeriphClockCmd
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init <BR>[Called By]<UL><LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init
</UL> </UL>
<P><STRONG><a name="[10c]"></a>LED_ROFF</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, led.o(i.LED_ROFF)) <P><STRONG><a name="[10c]"></a>LED_ROFF</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, led.o(i.LED_ROFF))
@@ -2038,7 +2032,7 @@ Global Symbols
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f40_41xxx.o(.text) <BR>[Address Reference Count : 1]<UL><LI> startup_stm32f40_41xxx.o(.text)
</UL> </UL>
<P><STRONG><a name="[24]"></a>TIM1_TRG_COM_TIM11_IRQHandler</STRONG> (Thumb, 308 bytes, Stack size 8 bytes, attitudealgorithms.o(i.TIM1_TRG_COM_TIM11_IRQHandler)) <P><STRONG><a name="[24]"></a>TIM1_TRG_COM_TIM11_IRQHandler</STRONG> (Thumb, 366 bytes, Stack size 8 bytes, attitudealgorithms.o(i.TIM1_TRG_COM_TIM11_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 280<LI>Call Chain = TIM1_TRG_COM_TIM11_IRQHandler &rArr; AHRS_update &rArr; accel_comple_filter &rArr; accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 280<LI>Call Chain = TIM1_TRG_COM_TIM11_IRQHandler &rArr; AHRS_update &rArr; accel_comple_filter &rArr; accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[12f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetITStatus <BR>[Calls]<UL><LI><a href="#[12f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_GetITStatus
@@ -2239,7 +2233,7 @@ Global Symbols
</UL> </UL>
<P><STRONG><a name="[2f]"></a>USART1_IRQHandler</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, visual.o(i.USART1_IRQHandler)) <P><STRONG><a name="[2f]"></a>USART1_IRQHandler</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, visual.o(i.USART1_IRQHandler))
<BR><BR>[Stack]<UL><LI>Max Depth = 128<LI>Call Chain = USART1_IRQHandler &rArr; Visual_Trans &rArr; atoi &rArr; strtol &rArr; _strtoul <BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = USART1_IRQHandler &rArr; Visual_Trans &rArr; atoi &rArr; strtol &rArr; _strtoul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[13d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_GetITStatus <BR>[Calls]<UL><LI><a href="#[13d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_GetITStatus
<LI><a href="#[13f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_ClearITPendingBit <LI><a href="#[13f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;USART_ClearITPendingBit
@@ -2342,8 +2336,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[147]"></a>Visual_SendData</STRONG> (Thumb, 86 bytes, Stack size 32 bytes, visual.o(i.Visual_SendData)) <P><STRONG><a name="[147]"></a>Visual_SendData</STRONG> (Thumb, 72 bytes, Stack size 56 bytes, visual.o(i.Visual_SendData))
<BR><BR>[Stack]<UL><LI>Max Depth = 184<LI>Call Chain = Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte <BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf <BR>[Calls]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf
<LI><a href="#[148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d <LI><a href="#[148]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_f2d
@@ -2351,12 +2345,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL> </UL>
<P><STRONG><a name="[13e]"></a>Visual_Trans</STRONG> (Thumb, 356 bytes, Stack size 32 bytes, visual.o(i.Visual_Trans)) <P><STRONG><a name="[13e]"></a>Visual_Trans</STRONG> (Thumb, 330 bytes, Stack size 24 bytes, visual.o(i.Visual_Trans))
<BR><BR>[Stack]<UL><LI>Max Depth = 120<LI>Call Chain = Visual_Trans &rArr; atoi &rArr; strtol &rArr; _strtoul <BR><BR>[Stack]<UL><LI>Max Depth = 112<LI>Call Chain = Visual_Trans &rArr; atoi &rArr; strtol &rArr; _strtoul
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoi <BR>[Calls]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoi
<LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strtok <LI><a href="#[149]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strtok
<LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strcmp
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr <LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main <BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
@@ -2398,7 +2391,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IST8310_Init <BR>[Called By]<UL><LI><a href="#[97]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IST8310_Init
</UL> </UL>
<P><STRONG><a name="[14b]"></a>Warming_Init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, warming.o(i.Warming_Init)) <P><STRONG><a name="[14a]"></a>Warming_Init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, warming.o(i.Warming_Init))
<BR><BR>[Stack]<UL><LI>Max Depth = 76<LI>Call Chain = Warming_Init &rArr; Buzzer_Init &rArr; GPIO_PinAFConfig <BR><BR>[Stack]<UL><LI>Max Depth = 76<LI>Call Chain = Warming_Init &rArr; Buzzer_Init &rArr; GPIO_PinAFConfig
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Buzzer_Init <BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Buzzer_Init
@@ -2453,9 +2446,13 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM7_IRQHandler <BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM7_IRQHandler
</UL> </UL>
<P><STRONG><a name="[14c]"></a>__0vsprintf</STRONG> (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED) <P><STRONG><a name="[15c]"></a>ZeroOffset_Calibration</STRONG> (Thumb, 110 bytes, Stack size 0 bytes, attitudealgorithms.o(i.ZeroOffset_Calibration))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[14b]"></a>__0vsprintf</STRONG> (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc <BR><BR>[Calls]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_sputc
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[171]"></a>__1vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED) <P><STRONG><a name="[171]"></a>__1vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
@@ -2470,7 +2467,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf <BR>[Called By]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf
</UL> </UL>
<P><STRONG><a name="[14f]"></a>__ARM_fpclassifyf</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, fpclassifyf.o(i.__ARM_fpclassifyf)) <P><STRONG><a name="[14e]"></a>__ARM_fpclassifyf</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, fpclassifyf.o(i.__ARM_fpclassifyf))
<BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f <LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf <LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
@@ -2487,12 +2484,12 @@ Global Symbols
<P><STRONG><a name="[7d]"></a>__hardfp_asinf</STRONG> (Thumb, 258 bytes, Stack size 16 bytes, asinf.o(i.__hardfp_asinf)) <P><STRONG><a name="[7d]"></a>__hardfp_asinf</STRONG> (Thumb, 258 bytes, Stack size 16 bytes, asinf.o(i.__hardfp_asinf))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __hardfp_asinf &rArr; sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __hardfp_asinf &rArr; sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow <LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid <LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan <LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf <LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf <LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_asinf <BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_asinf
</UL> </UL>
@@ -2500,10 +2497,10 @@ Global Symbols
<P><STRONG><a name="[7f]"></a>__hardfp_atan2f</STRONG> (Thumb, 594 bytes, Stack size 32 bytes, atan2f.o(i.__hardfp_atan2f)) <P><STRONG><a name="[7f]"></a>__hardfp_atan2f</STRONG> (Thumb, 594 bytes, Stack size 32 bytes, atan2f.o(i.__hardfp_atan2f))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __hardfp_atan2f <BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __hardfp_atan2f
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow <LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow
<LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan2 <LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan2
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf <LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_atan2f <BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_atan2f
</UL> </UL>
@@ -2511,10 +2508,10 @@ Global Symbols
<P><STRONG><a name="[81]"></a>__hardfp_cosf</STRONG> (Thumb, 280 bytes, Stack size 8 bytes, cosf.o(i.__hardfp_cosf)) <P><STRONG><a name="[81]"></a>__hardfp_cosf</STRONG> (Thumb, 280 bytes, Stack size 8 bytes, cosf.o(i.__hardfp_cosf))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = __hardfp_cosf &rArr; __mathlib_rredf2 <BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = __hardfp_cosf &rArr; __mathlib_rredf2
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2 <LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid <LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan <LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_cosf <BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_cosf
</UL> </UL>
@@ -2522,12 +2519,12 @@ Global Symbols
<P><STRONG><a name="[89]"></a>__hardfp_sinf</STRONG> (Thumb, 344 bytes, Stack size 16 bytes, sinf.o(i.__hardfp_sinf)) <P><STRONG><a name="[89]"></a>__hardfp_sinf</STRONG> (Thumb, 344 bytes, Stack size 16 bytes, sinf.o(i.__hardfp_sinf))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = __hardfp_sinf &rArr; __mathlib_rredf2 <BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = __hardfp_sinf &rArr; __mathlib_rredf2
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2 <LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow <LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid <LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan <LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf <LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_sinf <BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_sinf
</UL> </UL>
@@ -2535,34 +2532,34 @@ Global Symbols
<P><STRONG><a name="[88]"></a>__hardfp_sqrtf</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, sqrtf.o(i.__hardfp_sqrtf)) <P><STRONG><a name="[88]"></a>__hardfp_sqrtf</STRONG> (Thumb, 58 bytes, Stack size 16 bytes, sqrtf.o(i.__hardfp_sqrtf))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __hardfp_sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __hardfp_sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt <BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt
</UL> </UL>
<P><STRONG><a name="[151]"></a>__mathlib_flt_infnan</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan)) <P><STRONG><a name="[150]"></a>__mathlib_flt_infnan</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan))
<BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf <LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</UL> </UL>
<P><STRONG><a name="[154]"></a>__mathlib_flt_infnan2</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan2)) <P><STRONG><a name="[153]"></a>__mathlib_flt_infnan2</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_infnan2))
<BR><BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f <BR><BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f
</UL> </UL>
<P><STRONG><a name="[153]"></a>__mathlib_flt_invalid</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_invalid)) <P><STRONG><a name="[152]"></a>__mathlib_flt_invalid</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_invalid))
<BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf <LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</UL> </UL>
<P><STRONG><a name="[150]"></a>__mathlib_flt_underflow</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_underflow)) <P><STRONG><a name="[14f]"></a>__mathlib_flt_underflow</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, funder.o(i.__mathlib_flt_underflow))
<BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <BR><BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f <LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf <LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</UL> </UL>
<P><STRONG><a name="[155]"></a>__mathlib_rredf2</STRONG> (Thumb, 316 bytes, Stack size 20 bytes, rredf.o(i.__mathlib_rredf2)) <P><STRONG><a name="[154]"></a>__mathlib_rredf2</STRONG> (Thumb, 316 bytes, Stack size 20 bytes, rredf.o(i.__mathlib_rredf2))
<BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = __mathlib_rredf2 <BR><BR>[Stack]<UL><LI>Max Depth = 20<LI>Call Chain = __mathlib_rredf2
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <BR>[Called By]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
@@ -2575,8 +2572,8 @@ Global Symbols
<P><STRONG><a name="[177]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) <P><STRONG><a name="[177]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[152]"></a>__set_errno</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, errno.o(i.__set_errno)) <P><STRONG><a name="[151]"></a>__set_errno</STRONG> (Thumb, 6 bytes, Stack size 0 bytes, errno.o(i.__set_errno))
<BR><BR>[Called By]<UL><LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf <BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf
<LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sqrtf <LI><a href="#[88]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sqrtf
<LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf <LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_sinf
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf <LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
@@ -2593,12 +2590,12 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM1_TRG_COM_TIM11_IRQHandler <BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM1_TRG_COM_TIM11_IRQHandler
</UL> </UL>
<P><STRONG><a name="[132]"></a>kalmanFilter</STRONG> (Thumb, 106 bytes, Stack size 0 bytes, wavefiltering_kalman_filtering.o(i.kalmanFilter)) <P><STRONG><a name="[132]"></a>kalmanFilter</STRONG> (Thumb, 98 bytes, Stack size 0 bytes, wavefiltering_kalman_filtering.o(i.kalmanFilter))
<BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM1_TRG_COM_TIM11_IRQHandler <BR><BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM1_TRG_COM_TIM11_IRQHandler
</UL> </UL>
<P><STRONG><a name="[5c]"></a>main</STRONG> (Thumb, 132 bytes, Stack size 0 bytes, main.o(i.main)) <P><STRONG><a name="[5c]"></a>main</STRONG> (Thumb, 92 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 204<LI>Call Chain = main &rArr; AttitudeAlgorithms_Init &rArr; AHRS_init &rArr; angle_to_quat &rArr; AHRS_sinf &rArr; __hardfp_sinf &rArr; __mathlib_rredf2 <BR><BR>[Stack]<UL><LI>Max Depth = 208<LI>Call Chain = main &rArr; Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[15d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IWDG_ReloadCounter <BR>[Calls]<UL><LI><a href="#[15d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;IWDG_ReloadCounter
<LI><a href="#[122]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Remote_Init <LI><a href="#[122]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Remote_Init
@@ -2607,11 +2604,12 @@ Global Symbols
<LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_us <LI><a href="#[df]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_us
<LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_s <LI><a href="#[e0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Delay_s
<LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RefereeSystem_Init <LI><a href="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RefereeSystem_Init
<LI><a href="#[15c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ZeroOffset_Calibration
<LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AttitudeAlgorithms_Init <LI><a href="#[8f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AttitudeAlgorithms_Init
<LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CloseLoopControl_Init <LI><a href="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CloseLoopControl_Init
<LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CToC_MasterSendData <LI><a href="#[d6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CToC_MasterSendData
<LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CToC_MasterSendControl <LI><a href="#[d3]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CToC_MasterSendControl
<LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init <LI><a href="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Warming_Init
<LI><a href="#[10e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LinkCheck_Init <LI><a href="#[10e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LinkCheck_Init
<LI><a href="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_Trans <LI><a href="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_Trans
<LI><a href="#[147]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_SendData <LI><a href="#[147]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_SendData
@@ -2619,10 +2617,10 @@ Global Symbols
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B) <BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL> </UL>
<P><STRONG><a name="[14e]"></a>sqrtf</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, sqrtf.o(i.sqrtf)) <P><STRONG><a name="[14d]"></a>sqrtf</STRONG> (Thumb, 62 bytes, Stack size 16 bytes, sqrtf.o(i.sqrtf))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno <BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf <BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</UL> </UL>
@@ -2640,24 +2638,24 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN_GetITStatus <BR><BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN_GetITStatus
</UL> </UL>
<P><STRONG><a name="[15c]"></a>AHRS_fabs</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, ahrs.o(i.AHRS_fabs)) <P><STRONG><a name="[15b]"></a>AHRS_fabs</STRONG> (Thumb, 26 bytes, Stack size 0 bytes, ahrs.o(i.AHRS_fabs))
<BR><BR>[Called By]<UL><LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki <BR><BR>[Called By]<UL><LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki
</UL> </UL>
<P><STRONG><a name="[8b]"></a>accel_comple_filter</STRONG> (Thumb, 454 bytes, Stack size 64 bytes, ahrs.o(i.accel_comple_filter)) <P><STRONG><a name="[8b]"></a>accel_comple_filter</STRONG> (Thumb, 454 bytes, Stack size 64 bytes, ahrs.o(i.accel_comple_filter))
<BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = accel_comple_filter &rArr; accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 136<LI>Call Chain = accel_comple_filter &rArr; accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt <BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt
<LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki <LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update <BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update
</UL> </UL>
<P><STRONG><a name="[15b]"></a>accel_update_kp_ki</STRONG> (Thumb, 370 bytes, Stack size 40 bytes, ahrs.o(i.accel_update_kp_ki)) <P><STRONG><a name="[15a]"></a>accel_update_kp_ki</STRONG> (Thumb, 370 bytes, Stack size 40 bytes, ahrs.o(i.accel_update_kp_ki))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf <BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = accel_update_kp_ki &rArr; AHRS_invSqrt &rArr; __hardfp_sqrtf
</UL> </UL>
<BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt <BR>[Calls]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt
<LI><a href="#[15c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_fabs <LI><a href="#[15b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_fabs
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_comple_filter <BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_comple_filter
</UL> </UL>
@@ -2683,37 +2681,37 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update <BR><BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update
</UL> </UL>
<P><STRONG><a name="[156]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED) <P><STRONG><a name="[155]"></a>_fp_digits</STRONG> (Thumb, 366 bytes, Stack size 64 bytes, printfa.o(i._fp_digits), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod <BR><BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul <LI><a href="#[77]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dmul
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv <LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ddiv
<LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd <LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz <LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
<LI><a href="#[157]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple <LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_cdrcmple
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[14d]"></a>_printf_core</STRONG> (Thumb, 1704 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED) <P><STRONG><a name="[14c]"></a>_printf_core</STRONG> (Thumb, 1704 bytes, Stack size 136 bytes, printfa.o(i._printf_core), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod <BR><BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uldivmod
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod <LI><a href="#[159]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding <LI><a href="#[157]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[159]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding <LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits <LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL> </UL>
<BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf <BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf
</UL> </UL>
<P><STRONG><a name="[159]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED) <P><STRONG><a name="[158]"></a>_printf_post_padding</STRONG> (Thumb, 36 bytes, Stack size 24 bytes, printfa.o(i._printf_post_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR><BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[158]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED) <P><STRONG><a name="[157]"></a>_printf_pre_padding</STRONG> (Thumb, 46 bytes, Stack size 24 bytes, printfa.o(i._printf_pre_padding), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core <BR><BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL> </UL>
<P><STRONG><a name="[5f]"></a>_sputc</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, printfa.o(i._sputc)) <P><STRONG><a name="[5f]"></a>_sputc</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, printfa.o(i._sputc))
<BR><BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf <BR><BR>[Called By]<UL><LI><a href="#[14b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__0vsprintf
</UL> </UL>
<BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0vsprintf) <BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0vsprintf)
</UL><P> </UL><P>

View File

@@ -1926,7 +1926,7 @@ I (.\System\UART.h)(0x669D08B6)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164) I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164) I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
I (.\Library\stm32f4xx_sdio.h)(0x64D03164) I (.\Library\stm32f4xx_sdio.h)(0x64D03164)
I (.\Library\stm32f4xx_spi.h)(0x64D03164) I (.\Library\stm32f4xx_spi.h)(0x64D03164)
I (.\Library\stm32f4xx_syscfg.h)(0x64D03164) I (.\Library\stm32f4xx_syscfg.h)(0x64D03164)
I (.\Library\stm32f4xx_tim.h)(0x64D03164) I (.\Library\stm32f4xx_tim.h)(0x64D03164)
@@ -2273,7 +2273,7 @@ I (.\Library\stm32f4xx_dcmi.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164) I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164) I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164) I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
@@ -2316,9 +2316,9 @@ I (Function\IMUTemperatureControl.h)(0x65C36CAE)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164) I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164) I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164) I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
I (.\Library\stm32f4xx_sdio.h)(0x64D03164) I (.\Library\stm32f4xx_sdio.h)(0x64D03164)
@@ -2360,7 +2360,7 @@ I (.\AHRS\AHRS_MiddleWare.h)(0x64E14258)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164) I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
@@ -2437,12 +2437,12 @@ I (.\Library\stm32f4xx_dcmi.h)(0x64D03164)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162) I (.\Start\core_cmFunc.h)(0x64D03162)
I (.\Start\core_cmSimd.h)(0x64D03162) I (.\Start\core_cmSimd.h)(0x64D03162)
I (.\Start\system_stm32f4xx.h)(0x64D03132) I (.\Start\system_stm32f4xx.h)(0x64D03132)
I (.\User\stm32f4xx_conf.h)(0x64D03180) I (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.h)(0x64D03164) I (.\Library\stm32f4xx_adc.h)(0x64D03164)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
@@ -2477,16 +2477,16 @@ I (.\Library\stm32f4xx_can.h)(0x64D03164)
-o .\objects\m2006.o --omf_browse .\objects\m2006.crf --depend .\objects\m2006.d) -o .\objects\m2006.o --omf_browse .\objects\m2006.crf --depend .\objects\m2006.d)
I (.\Start\stm32f4xx.h)(0x66256792) I (.\Start\stm32f4xx.h)(0x66256792)
I (.\Start\core_cm4.h)(0x64D03162) I (.\Start\core_cm4.h)(0x64D03162)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162) I (.\Start\core_cmFunc.h)(0x64D03162)
I (.\Start\core_cmSimd.h)(0x64D03162) I (.\Start\core_cmSimd.h)(0x64D03162)
I (.\Start\system_stm32f4xx.h)(0x64D03132) I (.\Start\system_stm32f4xx.h)(0x64D03132)
I (.\User\stm32f4xx_conf.h)(0x64D03180) I (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.h)(0x64D03164) I (.\Library\stm32f4xx_adc.h)(0x64D03164)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
@@ -2531,7 +2531,7 @@ I (.\Function\Warming.h)(0x66A19ADE)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
@@ -2566,10 +2566,10 @@ I (.\Library\stm32f4xx_can.h)(0x64D03164)
-o .\objects\warming.o --omf_browse .\objects\warming.crf --depend .\objects\warming.d) -o .\objects\warming.o --omf_browse .\objects\warming.crf --depend .\objects\warming.d)
I (.\Start\stm32f4xx.h)(0x66256792) I (.\Start\stm32f4xx.h)(0x66256792)
I (.\Start\core_cm4.h)(0x64D03162) I (.\Start\core_cm4.h)(0x64D03162)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162) I (.\Start\core_cmFunc.h)(0x64D03162)
I (.\Start\core_cmSimd.h)(0x64D03162) I (.\Start\core_cmSimd.h)(0x64D03162)
I (.\Start\system_stm32f4xx.h)(0x64D03132) I (.\Start\system_stm32f4xx.h)(0x64D03132)
I (.\User\stm32f4xx_conf.h)(0x64D03180) I (.\User\stm32f4xx_conf.h)(0x64D03180)
@@ -2577,7 +2577,7 @@ I (.\Control\PID.h)(0x68BF8A63)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
@@ -2616,7 +2616,7 @@ I (.\Library\stm32f4xx_fsmc.h)(0x64D03164)
-o .\objects\ctoc.o --omf_browse .\objects\ctoc.crf --depend .\objects\ctoc.d) -o .\objects\ctoc.o --omf_browse .\objects\ctoc.crf --depend .\objects\ctoc.d)
I (.\Start\stm32f4xx.h)(0x66256792) I (.\Start\stm32f4xx.h)(0x66256792)
I (.\Start\core_cm4.h)(0x64D03162) I (.\Start\core_cm4.h)(0x64D03162)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162) I (.\Start\core_cmFunc.h)(0x64D03162)
@@ -2672,15 +2672,15 @@ I (.\Function\LinkCheck.h)(0x65FBCE1A)
I (.\Library\stm32f4xx_adc.h)(0x64D03164) I (.\Library\stm32f4xx_adc.h)(0x64D03164)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164) I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164) I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164) I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
I (.\Library\stm32f4xx_sdio.h)(0x64D03164) I (.\Library\stm32f4xx_sdio.h)(0x64D03164)
I (.\Library\stm32f4xx_spi.h)(0x64D03164) I (.\Library\stm32f4xx_spi.h)(0x64D03164)
I (.\Library\stm32f4xx_syscfg.h)(0x64D03164) I (.\Library\stm32f4xx_syscfg.h)(0x64D03164)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -4,16 +4,16 @@
/*=============================================结构参数=============================================*/ /*=============================================结构参数=============================================*/
#define Yaw_GM6020PositionValue 4000//Yaw轴编码器值4050 #define Yaw_GM6020PositionValue 4000//Yaw轴编码器值4050
#define Pitch_GM6020PositionValue 3245//Pitch轴编码器值 #define Pitch_GM6020PositionValue 3245//Pitch轴编码器值
#define Pitch_GM6020PositionLowerLinit 3665//Pitch轴编码器值下限 #define Pitch_GM6020PositionLowerLinit 3890//Pitch轴编码器值下限
#define Pitch_GM6020PositionUpperLinit 2565//Pitch轴编码器值上限 #define Pitch_GM6020PositionUpperLinit 2320//Pitch轴编码器值上限
#define Pitch_GM6020AngleLowerLinit 15.0f//Pitch轴编码器值下限 #define Pitch_GM6020AngleLowerLinit 20.0f//Pitch轴编码器值下限
#define Pitch_GM6020AngleUpperLinit -10.0f//Pitch轴编码器值上限 #define Pitch_GM6020AngleUpperLinit -10.0f//Pitch轴编码器值上限
/*=============================================云台参数=============================================*/ /*=============================================云台参数=============================================*/
#define Gimbal_FrictionWheelSpeed 5500//摩擦轮转速,弹速限制30m/s #define Gimbal_FrictionWheelSpeed 5850//摩擦轮转速,弹速限制25m/s
#define Gimbal_RammerSpeed -5400//拨弹盘转速,射频为7时大概冷却和热量相抵,5400是射频20的最低下限 #define Gimbal_RammerSpeed -6700//拨弹盘转速,射频为7时大概冷却和热量相抵,5400是射频20的最低下限
#define Gimbal_LeverSpeedMapRate 2.0f//云台俯仰拨杆速度映射比例 #define Gimbal_LeverSpeedMapRate 4.0f//云台俯仰拨杆速度映射比例
#define Gimbal_YawPitchSpeedRate 3.0f//云台偏航俯仰速度比 #define Gimbal_YawPitchSpeedRate 3.0f//云台偏航俯仰速度比
/*=============================================操作手参数=============================================*/ /*=============================================操作手参数=============================================*/
@@ -24,8 +24,8 @@
#define PC_Spin (Remote_RxData.Remote_Mouse_RL)//视角水平移动 #define PC_Spin (Remote_RxData.Remote_Mouse_RL)//视角水平移动
#define PC_Pitch (Remote_RxData.Remote_Mouse_DU)//视角垂直移动 #define PC_Pitch (Remote_RxData.Remote_Mouse_DU)//视角垂直移动
#define PC_Mouse_RLSensitivity 3.0f//鼠标左右灵敏度 #define PC_Mouse_RLSensitivity 1.0f//鼠标左右灵敏度
#define PC_Mouse_DUSensitivity 8.0f//鼠标上下灵敏度 #define PC_Mouse_DUSensitivity 2.7f//鼠标上下灵敏度
#define PC_FrictionWheel (Remote_RxData.Remote_KeyPush_Q)//摩擦轮 #define PC_FrictionWheel (Remote_RxData.Remote_KeyPush_Q)//摩擦轮
#define PC_Fire (Remote_RxData.Remote_Mouse_KeyL)//发射 #define PC_Fire (Remote_RxData.Remote_Mouse_KeyL)//发射

View File

@@ -7,7 +7,7 @@
#include "visual.h" #include "visual.h"
#include "UART.h" #include "UART.h"
#define DELAY_TIME 5 //D1定时的计数值 #define DELAY_TIME 1 //D1定时的计数值
unsigned int Delay_Count; //D1的延时初始值 unsigned int Delay_Count; //D1的延时初始值
@@ -17,7 +17,9 @@ int main(void)
{ {
Warming_Init();//报警初始化 Warming_Init();//报警初始化
LED_BON();//蓝灯点亮表示代码在运行 LED_BON();//蓝灯点亮表示代码在运行
Delay_s(1);//等待车身稳定以便于陀螺仪消除零偏
AttitudeAlgorithms_Init();//姿态解算初始化 AttitudeAlgorithms_Init();//姿态解算初始化
ZeroOffset_Calibration();//零偏校准
Delay_s(1);//延时,等待校准和模块启动 Delay_s(1);//延时,等待校准和模块启动
LinkCheck_Init();//连接检测初始化 LinkCheck_Init();//连接检测初始化
RefereeSystem_Init();//图传链路初始化 RefereeSystem_Init();//图传链路初始化
@@ -40,13 +42,10 @@ int main(void)
CToC_MasterSendData();//CToC发送遥控器摇杆数据 CToC_MasterSendData();//CToC发送遥控器摇杆数据
<<<<<<< HEAD
Visual_SendData();//开启串口调试
=======
Visual_SendData(); Visual_SendData();
>>>>>>> a6eb3f5ed5724a064e8286c2f8cd26fa9d4816e5
Visual_Trans();//视觉数据传输
/*
if(Delay_Count) //每次大循环只执行一次 if(Delay_Count) //每次大循环只执行一次
{ {
Delay_Count --; //只对计数值减一次1就跳出if Delay_Count --; //只对计数值减一次1就跳出if
@@ -64,7 +63,7 @@ int main(void)
} }
*/
Delay_us(1500);//CToC周期1.5ms Delay_us(1500);//CToC周期1.5ms
} }

View File

@@ -100,21 +100,16 @@
{ {
"name": "Target 1", "name": "Target 1",
"includePath": [ "includePath": [
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Start", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Start",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Library", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Library",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\System", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\System",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Algorithm", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Algorithm",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Hardware", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Hardware",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Motor", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Motor",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Function", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Function",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\Control", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\Control",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\CarBody", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\CarBody",
"f:\\桌面\\V1.0\\new-infantry\\底盘\\底盘\\User", "c:\\Users\\LSMushui\\Desktop\\RM\\New-Infantry-C-Board-Legacy\\底盘\\底盘\\User"
"C:\\Keil_v5\\ARM\\ARMCC\\include",
"C:\\Keil_v5\\ARM\\ARMCC\\include\\arm_linux",
"C:\\Keil_v5\\ARM\\ARMCC\\include\\arm_linux_compat",
"C:\\Keil_v5\\ARM\\ARMCC\\include\\libcxx",
"C:\\Keil_v5\\ARM\\ARMCC\\include\\rw"
], ],
"defines": [ "defines": [
"USE_STDPERIPH_DRIVER", "USE_STDPERIPH_DRIVER",

View File

@@ -29,3 +29,5 @@
[info] Log at : 2025/10/17|12:12:21|GMT+0800 [info] Log at : 2025/10/17|12:12:21|GMT+0800
[info] Log at : 2026/2/1|21:52:40|GMT+0800

View File

@@ -54,7 +54,7 @@ void Mecanum_Init(void)
PID_PositionSetOUTRange(&Mecanum_SpeedPID[3],-15000,15000); PID_PositionSetOUTRange(&Mecanum_SpeedPID[3],-15000,15000);
PID_PositionStructureInit(&Mecanum_TrackPID,Yaw_GM6020PositionValue);//底盘跟随 PID_PositionStructureInit(&Mecanum_TrackPID,Yaw_GM6020PositionValue);//底盘跟随
PID_PositionSetParameter(&Mecanum_TrackPID,0.007,0,0.8); PID_PositionSetParameter(&Mecanum_TrackPID,0.01,0,0.8);
PID_PositionSetEkRange(&Mecanum_TrackPID,-1,1); PID_PositionSetEkRange(&Mecanum_TrackPID,-1,1);
PID_PositionSetOUTRange(&Mecanum_TrackPID,-4,4); PID_PositionSetOUTRange(&Mecanum_TrackPID,-4,4);
} }

Binary file not shown.

View File

@@ -17,83 +17,83 @@ Library Manager: ArmAr.exe V5.06 update 7 (build 960)
Hex Converter: FromElf.exe V5.06 update 7 (build 960) Hex Converter: FromElf.exe V5.06 update 7 (build 960)
CPU DLL: SARMCM3.DLL V5.43.0.0 CPU DLL: SARMCM3.DLL V5.43.0.0
Dialog DLL: DCM.DLL V1.17.5.0 Dialog DLL: DCM.DLL V1.17.5.0
Target DLL: CMSIS_AGDI.dll V1.33.24.0 Target DLL: UL2CM3.DLL V1.164.16.0
Dialog DLL: TCM.DLL V1.56.6.0 Dialog DLL: TCM.DLL V1.56.6.0
<h2>Project:</h2> <h2>Project:</h2>
C:\Users\LSMushui\Desktop\RM\New-Infantry-C-Board-Legacy\<5C><><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>\Project.uvprojx C:\Users\LSMushui\Desktop\RM\workspace\Infantry-C-Board-from-PG\<5C><><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>\Project.uvprojx
Project File Date: 11/02/2025 Project File Date: 03/28/2026
<h2>Output:</h2> <h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin' *** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Target 1' Rebuild target 'Target 1'
assembling startup_stm32f40_41xxx.s... assembling startup_stm32f40_41xxx.s...
compiling misc.c...
compiling stm32f4xx_dbgmcu.c...
compiling stm32f4xx_dfsdm.c...
compiling stm32f4xx_cryp_tdes.c...
compiling system_stm32f4xx.c... compiling system_stm32f4xx.c...
compiling stm32f4xx_cryp.c... compiling stm32f4xx_cec.c...
compiling misc.c...
compiling stm32f4xx_adc.c... compiling stm32f4xx_adc.c...
compiling stm32f4xx_can.c... compiling stm32f4xx_can.c...
compiling stm32f4xx_dma2d.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_flash_ramfunc.c... compiling stm32f4xx_flash_ramfunc.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_cec.c...
compiling stm32f4xx_cryp_aes.c... compiling stm32f4xx_cryp_aes.c...
compiling stm32f4xx_dac.c...
compiling stm32f4xx_dfsdm.c...
compiling stm32f4xx_crc.c...
compiling stm32f4xx_dma2d.c...
compiling stm32f4xx_dbgmcu.c...
compiling stm32f4xx_fmpi2c.c... compiling stm32f4xx_fmpi2c.c...
compiling stm32f4xx_dma.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_cryp_tdes.c...
compiling stm32f4xx_gpio.c... compiling stm32f4xx_gpio.c...
compiling stm32f4xx_exti.c... compiling stm32f4xx_exti.c...
compiling stm32f4xx_crc.c... compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_fsmc.c... compiling stm32f4xx_fsmc.c...
compiling stm32f4xx_cryp.c...
compiling stm32f4xx_flash.c... compiling stm32f4xx_flash.c...
compiling stm32f4xx_dac.c...
compiling stm32f4xx_dma.c...
compiling stm32f4xx_hash.c... compiling stm32f4xx_hash.c...
compiling stm32f4xx_hash_md5.c... compiling stm32f4xx_hash_md5.c...
compiling stm32f4xx_iwdg.c...
compiling stm32f4xx_hash_sha1.c... compiling stm32f4xx_hash_sha1.c...
compiling stm32f4xx_iwdg.c...
compiling stm32f4xx_i2c.c... compiling stm32f4xx_i2c.c...
compiling stm32f4xx_lptim.c... compiling stm32f4xx_lptim.c...
compiling stm32f4xx_pwr.c... compiling stm32f4xx_pwr.c...
compiling stm32f4xx_qspi.c... compiling stm32f4xx_qspi.c...
compiling stm32f4xx_ltdc.c... compiling stm32f4xx_ltdc.c...
compiling stm32f4xx_rng.c...
compiling stm32f4xx_rcc.c... compiling stm32f4xx_rcc.c...
compiling stm32f4xx_sai.c... compiling stm32f4xx_rng.c...
compiling stm32f4xx_spdifrx.c... compiling stm32f4xx_spdifrx.c...
compiling Delay.c... compiling stm32f4xx_sai.c...
compiling TIM.c...
compiling stm32f4xx_syscfg.c... compiling stm32f4xx_syscfg.c...
compiling stm32f4xx_wwdg.c... compiling TIM.c...
compiling stm32f4xx_rtc.c...
compiling stm32f4xx_spi.c... compiling stm32f4xx_spi.c...
compiling stm32f4xx_wwdg.c...
compiling Delay.c...
compiling stm32f4xx_sdio.c... compiling stm32f4xx_sdio.c...
compiling UART.c...
compiling stm32f4xx_usart.c... compiling stm32f4xx_usart.c...
compiling CAN.c... compiling UART.c...
compiling stm32f4xx_rtc.c...
compiling stm32f4xx_tim.c... compiling stm32f4xx_tim.c...
compiling CAN.c...
compiling LED.c... compiling LED.c...
compiling Buzzer.c... compiling Buzzer.c...
compiling Remote.c... compiling Remote.c...
compiling GM6020.c... compiling GM6020.c...
compiling CToC.c...
compiling M3508.c... compiling M3508.c...
compiling Warming.c...
compiling LinkCheck.c... compiling LinkCheck.c...
compiling CloseLoopControl.c... compiling Warming.c...
compiling CToC.c...
compiling PID.c... compiling PID.c...
compiling RefereeSystem.c... compiling CloseLoopControl.c...
compiling Mecanum.c...
compiling RefereeSystem_CRCTable.c... compiling RefereeSystem_CRCTable.c...
compiling Mecanum.c...
compiling RefereeSystem.c...
compiling UI.c... compiling UI.c...
compiling Ultra_CAP.c...
compiling UI_Base.c...
compiling stm32f4xx_it.c... compiling stm32f4xx_it.c...
compiling main.c... compiling Ultra_CAP.c...
compiling UI_Library.c... compiling UI_Library.c...
compiling UI_Base.c...
compiling main.c...
linking... linking...
Program Size: Code=18636 RO-data=1224 RW-data=408 ZI-data=2496 Program Size: Code=18636 RO-data=1224 RW-data=408 ZI-data=2496
".\Objects\Project.axf" - 0 Error(s), 0 Warning(s). ".\Objects\Project.axf" - 0 Error(s), 0 Warning(s).

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Project.axf]</title></head> <title>Static Call Graph - [.\Objects\Project.axf]</title></head>
<body><HR> <body><HR>
<H1>Static Call Graph for image .\Objects\Project.axf</H1><HR> <H1>Static Call Graph for image .\Objects\Project.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Sun Nov 02 21:03:24 2025 <BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Thu Apr 09 17:08:04 2026
<BR><P> <BR><P>
<H3>Maximum Stack Usage = 232 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3> <H3>Maximum Stack Usage = 232 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3> Call chain for Maximum Stack Depth:</H3>

View File

@@ -2132,7 +2132,7 @@ I (.\Library\stm32f4xx_dcmi.h)(0x64D03164)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162) I (.\Start\core_cmFunc.h)(0x64D03162)
I (.\Start\core_cmSimd.h)(0x64D03162) I (.\Start\core_cmSimd.h)(0x64D03162)
I (.\Start\system_stm32f4xx.h)(0x64D03132) I (.\Start\system_stm32f4xx.h)(0x64D03132)
I (.\User\stm32f4xx_conf.h)(0x64D03180) I (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.h)(0x64D03164) I (.\Library\stm32f4xx_adc.h)(0x64D03164)
@@ -2172,7 +2172,7 @@ I (.\Motor\M3508.h)(0x669D0F64)
-D__UVISION_VERSION="543" -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -D__UVISION_VERSION="543" -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx
-o .\objects\m3508.o --omf_browse .\objects\m3508.crf --depend .\objects\m3508.d) -o .\objects\m3508.o --omf_browse .\objects\m3508.crf --depend .\objects\m3508.d)
I (.\Start\stm32f4xx.h)(0x64F48C00) I (.\Start\stm32f4xx.h)(0x64F48C00)
I (.\Start\core_cm4.h)(0x64D03162) I (.\Start\core_cm4.h)(0x64D03162)
I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162) I (.\Start\core_cmInstr.h)(0x64D03162)
@@ -2407,7 +2407,7 @@ I (CarBody\UI_Base.h)(0x664C499A)
I (.\User\stm32f4xx_conf.h)(0x64D03180) I (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.h)(0x64D03164) I (.\Library\stm32f4xx_adc.h)(0x64D03164)
I (.\Library\stm32f4xx_crc.h)(0x64D03164) I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164) I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
@@ -2458,14 +2458,14 @@ I (.\Function\LinkCheck.h)(0x65F5DCF4)
I (.\Library\stm32f4xx_dma.h)(0x64D03164) I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.h)(0x64D03164) I (.\Library\stm32f4xx_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164) I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.h)(0x64D03164) I (.\Library\stm32f4xx_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164) I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164) I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164) I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164) I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164) I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
I (.\Library\stm32f4xx_sdio.h)(0x64D03164) I (.\Library\stm32f4xx_sdio.h)(0x64D03164)
I (.\Library\stm32f4xx_spi.h)(0x64D03164) I (.\Library\stm32f4xx_spi.h)(0x64D03164)
I (.\Library\stm32f4xx_syscfg.h)(0x64D03164) I (.\Library\stm32f4xx_syscfg.h)(0x64D03164)
I (.\Library\stm32f4xx_tim.h)(0x64D03164) I (.\Library\stm32f4xx_tim.h)(0x64D03164)
I (.\Library\stm32f4xx_usart.h)(0x64D03164) I (.\Library\stm32f4xx_usart.h)(0x64D03164)

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -12,7 +12,7 @@
<lExt>*.lib</lExt> <lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt> <tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt> <pExt>*.plm</pExt>
<CppX>*.cpp</CppX> <CppX>*.cpp; *.cc; *.cxx</CppX>
<nMigrate>0</nMigrate> <nMigrate>0</nMigrate>
</Extensions> </Extensions>
@@ -28,7 +28,7 @@
<TargetOption> <TargetOption>
<CLKADS>12000000</CLKADS> <CLKADS>12000000</CLKADS>
<OPTTT> <OPTTT>
<gFlags>1</gFlags> <gFlags>0</gFlags>
<BeepAtEnd>1</BeepAtEnd> <BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim> <RunSim>0</RunSim>
<RunTarget>1</RunTarget> <RunTarget>1</RunTarget>
@@ -73,11 +73,11 @@
<LExpSel>0</LExpSel> <LExpSel>0</LExpSel>
</OPTXL> </OPTXL>
<OPTFL> <OPTFL>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget> <IsCurrentTarget>1</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>0</CpuCode>
<DebugOpt> <DebugOpt>
<uSim>0</uSim> <uSim>0</uSim>
<uTrg>1</uTrg> <uTrg>1</uTrg>
@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>3</nTsel> <nTsel>0</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -114,39 +114,9 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>BIN\CMSIS_AGDI.dll</pMon> <pMon>BIN\UL2CM3.DLL</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>CMSIS_AGDI</Key>
<Name>-X"CMSIS-DAP_LU" -ULU_2022_8888 -O206 -S8 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP20 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMRTXEVENTFLAGS</Key>
<Name>-L70 -Z18 -C0 -M0 -T1</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGTARM</Key>
<Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ARMDBGFLAGS</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name></Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U00650059572D430C4E4C3054 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IGHx$CMSIS\Flash\STM32F4xx_1024.FLM)</Name>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>UL2CM3</Key> <Key>UL2CM3</Key>
@@ -154,165 +124,18 @@
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint/> <Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>IST8310_MagneticField</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>IST8310_Temperature</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>BMI088_Accel</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>1</WinNumber>
<ItemText>BMI088_Gyro</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>1</WinNumber>
<ItemText>BMI088_Temperature</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>1</WinNumber>
<ItemText>ui_default_Ungroup_0</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_Power</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_Buffer</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_Ref</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_RobotID</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_RxData</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>1</WinNumber>
<ItemText>RefereeSystem_RxHEXPacket</ItemText>
</Ww>
<Ww>
<count>12</count>
<WinNumber>1</WinNumber>
<ItemText>Remote_RxData</ItemText>
</Ww>
<Ww>
<count>13</count>
<WinNumber>1</WinNumber>
<ItemText>M3508_MotorStatus</ItemText>
</Ww>
<Ww>
<count>14</count>
<WinNumber>1</WinNumber>
<ItemText>Odometer_dx</ItemText>
</Ww>
</WatchWindow1>
<WatchWindow2>
<Ww>
<count>0</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_RadYaw</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_RadPitch</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_RadRoll</ItemText>
</Ww>
<Ww>
<count>3</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_DegYaw</ItemText>
</Ww>
<Ww>
<count>4</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_DegPitch</ItemText>
</Ww>
<Ww>
<count>5</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_DegRoll</ItemText>
</Ww>
<Ww>
<count>6</count>
<WinNumber>2</WinNumber>
<ItemText>halfex</ItemText>
</Ww>
<Ww>
<count>7</count>
<WinNumber>2</WinNumber>
<ItemText>halfey</ItemText>
</Ww>
<Ww>
<count>8</count>
<WinNumber>2</WinNumber>
<ItemText>halfez</ItemText>
</Ww>
<Ww>
<count>9</count>
<WinNumber>2</WinNumber>
<ItemText>Gyro_</ItemText>
</Ww>
<Ww>
<count>10</count>
<WinNumber>2</WinNumber>
<ItemText>BMI088_Gyro</ItemText>
</Ww>
<Ww>
<count>11</count>
<WinNumber>2</WinNumber>
<ItemText>AttitudeAlgorithms_q</ItemText>
</Ww>
</WatchWindow2>
<MemoryWindow1>
<Mm>
<WinNumber>1</WinNumber>
<SubType>0</SubType>
<ItemText>0x2000093C</ItemText>
<AccSizeX>0</AccSizeX>
</Mm>
</MemoryWindow1>
<Tracepoint> <Tracepoint>
<THDelay>0</THDelay> <THDelay>0</THDelay>
</Tracepoint> </Tracepoint>
<DebugFlag> <DebugFlag>
<trace>0</trace> <trace>0</trace>
<periodic>1</periodic> <periodic>0</periodic>
<aLwin>1</aLwin> <aLwin>0</aLwin>
<aCover>0</aCover> <aCover>0</aCover>
<aSer1>0</aSer1> <aSer1>0</aSer1>
<aSer2>0</aSer2> <aSer2>0</aSer2>
<aPa>0</aPa> <aPa>0</aPa>
<viewmode>1</viewmode> <viewmode>0</viewmode>
<vrSel>0</vrSel> <vrSel>0</vrSel>
<aSym>0</aSym> <aSym>0</aSym>
<aTbox>0</aTbox> <aTbox>0</aTbox>
@@ -345,7 +168,7 @@
<pMultCmdsp></pMultCmdsp> <pMultCmdsp></pMultCmdsp>
<DebugDescription> <DebugDescription>
<Enable>1</Enable> <Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq> <EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog> <EnableLog>0</EnableLog>
<Protocol>2</Protocol> <Protocol>2</Protocol>
<DbgClock>10000000</DbgClock> <DbgClock>10000000</DbgClock>
@@ -1415,7 +1238,7 @@
<Group> <Group>
<GroupName>System</GroupName> <GroupName>System</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@@ -1519,7 +1342,7 @@
<Group> <Group>
<GroupName>Algorithm</GroupName> <GroupName>Algorithm</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@@ -1767,7 +1590,7 @@
<Group> <Group>
<GroupName>Control</GroupName> <GroupName>Control</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>
@@ -1799,7 +1622,7 @@
<Group> <Group>
<GroupName>CarBody</GroupName> <GroupName>CarBody</GroupName>
<tvExp>1</tvExp> <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@@ -11,7 +11,7 @@
#define Mecanum_ry 18.75f//底盘中心到轮子中心的距离的y轴分量(单位cm) #define Mecanum_ry 18.75f//底盘中心到轮子中心的距离的y轴分量(单位cm)
#define Mecanum_LeverSpeedMapRate (1.2f/660.0f)//拨杆速度映射比例 #define Mecanum_LeverSpeedMapRate (1.2f/660.0f)//拨杆速度映射比例
#define Mecanum_GyroScopeAngularVelocity 7.0f//小陀螺角速度 #define Mecanum_GyroScopeAngularVelocity 10.0f//小陀螺角速度
#define Mecanum_NormalSpeedRate 1.5f//底盘正常速度和超功率速度的比值 #define Mecanum_NormalSpeedRate 1.1f//底盘正常速度和超功率速度的比值
#endif #endif

View File

@@ -7,7 +7,7 @@ int main()
{ {
Warming_Init();//报警初始化 Warming_Init();//报警初始化
LED_BON();//蓝灯点亮表示代码在运行 LED_BON();//蓝灯点亮表示代码在运行
Delay_s(2);//延时,等待校准和模块启动 Delay_s(4);//延时,等待校准和模块启动
RefereeSystem_Init();//裁判系统数据接收初始化 RefereeSystem_Init();//裁判系统数据接收初始化
LinkCheck_Init();//连接检测初始化 LinkCheck_Init();//连接检测初始化
Ultra_CAP_Init();//超电初始化 Ultra_CAP_Init();//超电初始化