RMUL2026最终上场版本

This commit is contained in:
2026-04-09 17:12:18 +08:00
parent e67934f531
commit c2fa517996
28 changed files with 385 additions and 521 deletions

View File

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

View File

@@ -24,6 +24,8 @@ KFP kfp_PITCH={0.02,0,0,0,0.001,0.543};//卡尔曼滤波器结构体
uint8_t Gimbal_FrictionWheelFlag;//云台小陀螺标志位,云台开摩擦轮标志位
extern int KP , KI , KD;
extern float Visual_Yaw,Visual_Pitch;
extern uint8_t Visual_ReceiveFlag;
float use_yaw=0;
@@ -129,18 +131,18 @@ void Gimbal_CleanPID(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_RxData.Remote_L_UD>1050 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)<1000) && GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position>Pitch_GM6020PositionUpperLinit)
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;//通过遥控器或者鼠标获取俯仰情况
//if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle<=Pitch_GM6020PositionUpperLinit)
//Gimbal_PitchAnglePositionPID.Need_Value=0;
}
else if(((Remote_RxData.Remote_L_UD<1000 && RefereeSystem_Status==0) || (1024+Remote_RxData.Remote_Mouse_DU*3)>1050) && GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position<Pitch_GM6020PositionLowerLinit)
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;//通过遥控器或者鼠标获取俯仰情况
// if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Angle>=Pitch_GM6020PositionLowerLinit)
@@ -149,18 +151,18 @@ void Gimbal_PitchControl(void)
if(Remote_RxData.Remote_LS==2 || Remote_RxData.Remote_Mouse_KeyR==1 )//自瞄,补偿角度
{
use_pitch=0.5f*Visual_Pitch;
use_yaw=0.5f*Visual_Yaw;
use_pitch=1.5f*Visual_Pitch;
use_yaw=0.5f*-Visual_Yaw;
//if(Visual_ReceiveFlag==1)UART2_Printf("Y:%f,P:%f\n",Visual_Yaw,Visual_Pitch);//*0.0030518509475997f
//pitch
if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position>Pitch_GM6020PositionUpperLinit && Visual_Pitch>0)
Gimbal_PitchAnglePositionPID.Need_Value=AttitudeAlgorithms_DegRoll-(float)use_pitch-lastpitch;
if(GM6020_MotorStatus[Gimbal_PitchMotor-0x205].Position<Pitch_GM6020PositionLowerLinit && 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=AttitudeAlgorithms_DegRoll-(float)use_pitch;
use_pitch=0;
Remote_RxData.Remote_Mouse_KeyPushR=0;
Remote_RxData.Remote_LS=0;
//UART2_Printf("Y:%f,P:%f\n",Visual_Yaw,Visual_Pitch);
Visual_Pitch=0;
Visual_Yaw=0;
Visual_ReceiveFlag=0;
}
@@ -196,14 +198,14 @@ void Gimbal_YawControl(void)
if(Remote_StartFlag==2)
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)
Gimbal_YawAnglePositionPID.Need_Value-=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((Remote_RxData.Remote_L_RL-1024)/660.0f)+(float)use_yaw;
else
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)
Gimbal_YawAnglePositionPID.Need_Value+=Gimbal_LeverSpeedMapRate*Gimbal_YawPitchSpeedRate*Gimbal_YawPitchSpeedRate*0.0439453125f*((1024-Remote_RxData.Remote_L_RL)/660.0f)+(float)use_yaw;
@@ -211,9 +213,9 @@ void Gimbal_YawControl(void)
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;
//串级PID闭环Yaw角
PID_PositionCalc(&Gimbal_YawAnglePositionPID,AttitudeAlgorithms_DegYaw);
Gimbal_YawAngleSpeedPID.Need_Value=Gimbal_YawAnglePositionPID.OUT;

View File

@@ -16,8 +16,8 @@ uint32_t Visual_Time=0;//视觉数据send时间
uint32_t Time_Out=0;//超时时间
uint32_t SystemCoreClock84=84000000; //84M
int KP , KI , KD;
int yaw=0 , pitch=0;
static char dataType; // 存储类型字段('r'/'b'/'u'
int yaw=0 , pitch=0 , roll=0 ,delay=0;
uint8_t USART_RX_BUF[100];//视觉数据jieshou缓冲区
extern PID_PositionInitTypedef Gimbal_YawAnglePositionPID,Gimbal_YawAngleSpeedPID,Gimbal_PitchAnglePositionPID,Gimbal_PitchAngleSpeedPID;//Pitch轴GM6020电机PID;
@@ -44,15 +44,16 @@ void Visual_Init(void)
}
void Visual_SendData(void)
{
/*SendData MCUMessage;
/*
SendData MCUMessage;
MCUMessage.curr_yaw=AttitudeAlgorithms_DegYaw;
MCUMessage.curr_pitch=AttitudeAlgorithms_DegPitch;
MCUMessage.state=(uint8_t)('a');
MCUMessage.mark=(uint8_t)(0);
MCUMessage.anti_top=(uint8_t)(0);
MCUMessage.enemy_color=(uint8_t)(1);
MCUMessage.delta_x=(uint8_t)(1);
MCUMessage.delta_y=(uint8_t)(1);
MCUMessage.delta_x=(uint8_t)(0);
MCUMessage.delta_y=(uint8_t)(0);
UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage));*/
//UART2_SendArray((uint8_t *)&MCUMessage, sizeof(MCUMessage));
/*
@@ -60,24 +61,29 @@ void Visual_SendData(void)
UART2_SendByte((float)AttitudeAlgorithms_DegRoll);
//UART2_SendByte((float)AttitudeAlgorithms_DegPitch);
UART2_SendByte((uint8_t)0);
//UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)'a');
UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)1);
UART2_SendByte((uint8_t)1);
UART2_SendByte((uint8_t)0);
UART2_SendByte((uint8_t)0);
*/
/*
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,%f\n",AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegYaw,BMI088_Temperature);
//UART2_Printf("%f,%f,%f,%f,%f,%f\n",BMI088_Gyro[0],BMI088_Gyro[1],BMI088_GyroZeroOffset[0],BMI088_GyroZeroOffset[1],BMI088_GyroWithoutOffset[0],BMI088_GyroWithoutOffset[1]);
*/
UART2_Printf("%f %f %c %d %d %d %d %d\n",AttitudeAlgorithms_DegPitch,AttitudeAlgorithms_DegYaw,'a',0,0,1,0,0);
//UART2_SendByte((uint8_t)'\n');
//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)
//UART2_Printf("%f %f %f %f\n",Visual_Yaw,Visual_Pitch,AttitudeAlgorithms_DegYaw);//*0.0030518509475997f
@@ -110,7 +116,132 @@ void USART1_IRQHandler(void)
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) {
// 静态变量(函数内部状态)
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_Pitch = -(float)pitch;
@@ -201,8 +332,8 @@ static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
Visual_GetPitch = pitch;
// 角度转换(根据实际需求调整系数)
Visual_Yaw = -(float)yaw * 0.03051850947599f;
Visual_Pitch = -(float)pitch * 0.03051850947599f;
Visual_Yaw = (float)yaw * 0.03051850947599f;
Visual_Pitch = (float)pitch * 0.03051850947599f;
Visual_ReceiveFlag = 1; // 置位完成标志
}
@@ -220,13 +351,10 @@ static uint32_t RxTimeoutTick = 0;// 超时计时器(毫秒)
break;
}
}
*/
/*
void Visual_Trans(void){
static int Visual_RxHEXPacket[20];
//char Message[10];
@@ -248,7 +376,6 @@ void Visual_Trans(void){
Visual_RxHEXPacket[pRxHEXState]=UART2_RxData;//接收数据
if(pRxHEXState==7)//接收数据长度达到3
{
RxHEXState=2;//转入模式2
@@ -261,7 +388,6 @@ void Visual_Trans(void){
}
}
else if(RxHEXState==2)//模式2-等待包尾
{
@@ -273,20 +399,19 @@ void Visual_Trans(void){
Visual_GetPitch=((uint8_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3]);
Visual_GetRoll=((uint8_t)Visual_RxHEXPacket[4]<<8 | Visual_RxHEXPacket[5]);
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_Yaw=-Visual_GetYaw*0.003051850947599f;
Visual_Pitch=(Visual_GetPitch)*0.0005051850947599f/*+Visual_GetRoll*0.049f/(30.0f*3.1415926535f)*/;
// Visual_Yaw=(Visual_GetYaw)*0.0003051850947599f;
//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_Pitch=(int16_t)((uint16_t)Visual_RxHEXPacket[2]<<8 | Visual_RxHEXPacket[3])*0.01f;
Visual_ReceiveFlag=1;
RxHEXState=0;//回到模式0
//Visual_ReceiveFlag=1;
//RxHEXState=0;//回到模式0
//Buzzer_Time(M4,1000);//蜂鸣器发声
}
//}
}
// }
}
*/
//}

View File

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

View File

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

View File

@@ -105,9 +105,9 @@ void TIM1_TRG_COM_TIM11_IRQHandler(void)
BMI088_GyroWithoutOffset[1]=BMI088_Gyro[1]+BMI088_GyroZeroOffset[1];
BMI088_GyroWithoutOffset[2]=BMI088_Gyro[2];
//debug
//AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_Gyro,BMI088_Accel,IST8310_MagneticField);
AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_GyroWithoutOffset,BMI088_Accel,IST8310_MagneticField);
AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_GyroWithoutOffset,BMI088_Accel,fake_IST8310);
//AHRS_update(AttitudeAlgorithms_q,0.001f,BMI088_GyroWithoutOffset,BMI088_Accel,fake_IST8310);
get_angle(AttitudeAlgorithms_q,&AttitudeAlgorithms_RadYaw,&AttitudeAlgorithms_RadPitch,&AttitudeAlgorithms_RadRoll);
AttitudeAlgorithms_LastDegYaw=AttitudeAlgorithms_ThisDegYaw;

Binary file not shown.

View File

@@ -17,112 +17,22 @@ Library Manager: ArmAr.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
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
<h2>Project:</h2>
C:\Users\LSMushui\Desktop\RM\test-rope\<5C><>̨\<5C><>̨\Project.uvprojx
Project File Date: 11/02/2025
C:\Users\LSMushui\Desktop\RM\workspace\Infantry-C-Board-from-PG\<5C><>̨\<5C><>̨\Project.uvprojx
Project File Date: 03/24/2026
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Target 1'
assembling startup_stm32f40_41xxx.s...
compiling system_stm32f4xx.c...
compiling misc.c...
compiling stm32f4xx_crc.c...
compiling stm32f4xx_cec.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_fmpi2c.c...
compiling stm32f4xx_cryp_tdes.c...
compiling stm32f4xx_can.c...
compiling stm32f4xx_cryp.c...
compiling stm32f4xx_exti.c...
compiling stm32f4xx_adc.c...
compiling stm32f4xx_fsmc.c...
compiling stm32f4xx_dbgmcu.c...
compiling stm32f4xx_flash_ramfunc.c...
compiling stm32f4xx_dfsdm.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_dac.c...
compiling stm32f4xx_gpio.c...
compiling stm32f4xx_dma.c...
compiling stm32f4xx_dma2d.c...
compiling stm32f4xx_flash.c...
compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_cryp_aes.c...
compiling stm32f4xx_hash.c...
compiling stm32f4xx_hash_md5.c...
compiling stm32f4xx_hash_sha1.c...
compiling stm32f4xx_iwdg.c...
compiling stm32f4xx_lptim.c...
compiling stm32f4xx_i2c.c...
compiling stm32f4xx_qspi.c...
compiling stm32f4xx_rng.c...
compiling stm32f4xx_pwr.c...
compiling stm32f4xx_ltdc.c...
compiling stm32f4xx_sai.c...
compiling stm32f4xx_rcc.c...
compiling stm32f4xx_sdio.c...
compiling stm32f4xx_spdifrx.c...
compiling stm32f4xx_rtc.c...
compiling stm32f4xx_syscfg.c...
compiling TIM.c...
compiling stm32f4xx_spi.c...
compiling Delay.c...
compiling stm32f4xx_wwdg.c...
compiling stm32f4xx_usart.c...
compiling AHRS_middleware.c...
compiling UART.c...
compiling user_lib.c...
compiling stm32f4xx_tim.c...
compiling MyI2C.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: 2 warnings, 0 errors
compiling CAN.c...
compiling LED.c...
compiling Buzzer.c...
compiling Remote.c...
compiling IST8310.c...
compiling Laser.c...
compiling BMI088.c...
compiling M3508.c...
compiling GM6020.c...
compiling M2006.c...
compiling LinkCheck.c...
compiling Warming.c...
Build target 'Target 1'
compiling CToC.c...
compiling CloseLoopControl.c...
compiling AttitudeAlgorithms.c...
compiling IMUTemperatureControl.c...
compiling PID.c...
compiling RefereeSystem.c...
compiling Keyboard.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(119): warning: #550-D: variable "Visual_Type" was set but never used
char Visual_Type = '\0'; // 存储类型r/b/u<><75>?
CarBody\Visual.c(122): warning: #550-D: variable "Visual_ReceiveFlag" was set but never used
uint8_t Visual_ReceiveFlag = 0; // 接收完成标志
CarBody\Visual.c(128): warning: #550-D: variable "RxTimeoutTick" was set but never used
static uint32_t RxTimeoutTick = 0;// 超时计时器毫秒<E6AFAB><E7A792>?
CarBody\Visual.c(292): 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 main.c...
compiling stm32f4xx_it.c...
linking...
Program Size: Code=32376 RO-data=1372 RW-data=604 ZI-data=3372
".\Objects\Project.axf" - 0 Error(s), 8 Warning(s).
Program Size: Code=32184 RO-data=1372 RW-data=616 ZI-data=3408
".\Objects\Project.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
@@ -134,7 +44,7 @@ Package Vendor: Keil
<h2>Collection of Component include folders:</h2>
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:05
Build Time Elapsed: 00:00:02
</pre>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Project.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\Project.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Tue Mar 10 14:28:10 2026
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Sat Mar 28 17:36:53 2026
<BR><P>
<H3>Maximum Stack Usage = 280 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -121,7 +121,7 @@ Global Symbols
<P><STRONG><a name="[5e]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f40_41xxx.o(.text)
</UL>
<P><STRONG><a name="[15f]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[15e]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[60]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -131,17 +131,17 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[160]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[15f]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[161]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[160]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[162]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[161]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[163]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[162]"></a>__rt_lib_shutdown_fini</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E))
<P><STRONG><a name="[164]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[163]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[165]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[164]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f40_41xxx.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f40_41xxx.o(RESET)
@@ -368,9 +368,9 @@ Global Symbols
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[166]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[165]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[167]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[166]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[64]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -382,18 +382,12 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update
</UL>
<P><STRONG><a name="[168]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[167]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[66]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</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))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = strtok
</UL>
@@ -432,10 +426,10 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[147]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_SendData
</UL>
<P><STRONG><a name="[169]"></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)
<BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<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="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<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
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</UL>
<BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<BR>[Called By]<UL><LI><a href="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_ldivmod
</UL>
@@ -457,7 +451,7 @@ Global Symbols
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
</UL>
<P><STRONG><a name="[16a]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[169]"></a>_ll_shift_l</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED)
<P><STRONG><a name="[69]"></a>strtol</STRONG> (Thumb, 112 bytes, Stack size 32 bytes, strtol.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = strtol &rArr; _strtoul
@@ -469,9 +463,9 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoi
</UL>
<P><STRONG><a name="[16b]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[16a]"></a>__I$use$fp</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED)
<P><STRONG><a name="[16c]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)
<P><STRONG><a name="[16b]"></a>_float_round</STRONG> (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text), UNUSED)
<P><STRONG><a name="[6b]"></a>_float_epilogue</STRONG> (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = _float_epilogue
@@ -487,7 +481,7 @@ Global Symbols
</UL>
<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="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<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)
<BR><BR>[Calls]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
</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>
<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
</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>
<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
<LI><a href="#[6d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_llsl
</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>
<P><STRONG><a name="[157]"></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
<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="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</UL>
<P><STRONG><a name="[61]"></a>__scatterload</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text))
@@ -527,7 +521,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[16d]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[16c]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[6e]"></a>__aeabi_llsr</STRONG> (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[73]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_double_epilogue
@@ -535,13 +529,13 @@ Global Symbols
<LI><a href="#[79]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_d2ulz
</UL>
<P><STRONG><a name="[16e]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[16d]"></a>_ll_ushift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED)
<P><STRONG><a name="[72]"></a>__aeabi_lasr</STRONG> (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
</UL>
<P><STRONG><a name="[16f]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<P><STRONG><a name="[16e]"></a>_ll_sshift_r</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED)
<P><STRONG><a name="[6f]"></a>__rt_ctype_table</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, ctype_o.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strtol
@@ -575,9 +569,9 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[70]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_strtoul
</UL>
<P><STRONG><a name="[170]"></a>__decompress</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
<P><STRONG><a name="[16f]"></a>__decompress</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
<P><STRONG><a name="[171]"></a>__decompress1</STRONG> (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
<P><STRONG><a name="[170]"></a>__decompress1</STRONG> (Thumb, 86 bytes, Stack size unknown bytes, __dczerorl2.o(.text), UNUSED)
<P><STRONG><a name="[7c]"></a>AHRS_asinf</STRONG> (Thumb, 24 bytes, Stack size 16 bytes, ahrs_middleware.o(i.AHRS_asinf))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = AHRS_asinf &rArr; __hardfp_asinf &rArr; sqrtf
@@ -636,7 +630,7 @@ Global Symbols
</UL>
<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="#[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
</UL>
@@ -808,7 +802,7 @@ Global Symbols
<LI><a href="#[91]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_InternalClockConfig
<LI><a href="#[99]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM_Cmd
</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>
<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
</UL>
<P><STRONG><a name="[f2]"></a>Gimbal_PitchControl</STRONG> (Thumb, 444 bytes, Stack size 24 bytes, gimbal.o(i.Gimbal_PitchControl))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = 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 = 16<LI>Call Chain = Gimbal_PitchControl
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_PositionCalc
</UL>
@@ -1319,7 +1313,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[f1]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Gimbal_MoveControl
</UL>
<P><STRONG><a name="[f3]"></a>Gimbal_YawControl</STRONG> (Thumb, 518 bytes, Stack size 8 bytes, gimbal.o(i.Gimbal_YawControl))
<P><STRONG><a name="[f3]"></a>Gimbal_YawControl</STRONG> (Thumb, 508 bytes, Stack size 8 bytes, gimbal.o(i.Gimbal_YawControl))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = Gimbal_YawControl &rArr; GM6020_CAN2SetLIDVoltage &rArr; CAN_TransmitStatus
</UL>
<BR>[Calls]<UL><LI><a href="#[ea]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;PID_PositionCalc
@@ -1407,7 +1401,7 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[122]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Remote_Init
</UL>
<P><STRONG><a name="[15e]"></a>IWDG_ReloadCounter</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f4xx_iwdg.o(i.IWDG_ReloadCounter))
<P><STRONG><a name="[15d]"></a>IWDG_ReloadCounter</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f4xx_iwdg.o(i.IWDG_ReloadCounter))
<BR><BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -1478,7 +1472,7 @@ Global Symbols
<LI><a href="#[a0]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;GPIO_Init
<LI><a href="#[9f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RCC_AHB1PeriphClockCmd
</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>
<P><STRONG><a name="[10c]"></a>LED_ROFF</STRONG> (Thumb, 14 bytes, Stack size 8 bytes, led.o(i.LED_ROFF))
@@ -2239,7 +2233,7 @@ Global Symbols
</UL>
<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>
<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
@@ -2342,8 +2336,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[147]"></a>Visual_SendData</STRONG> (Thumb, 116 bytes, Stack size 24 bytes, visual.o(i.Visual_SendData))
<BR><BR>[Stack]<UL><LI>Max Depth = 176<LI>Call Chain = Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte
<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 = 208<LI>Call Chain = Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte
</UL>
<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
@@ -2351,12 +2345,11 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[13e]"></a>Visual_Trans</STRONG> (Thumb, 356 bytes, Stack size 32 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
<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 = 112<LI>Call Chain = Visual_Trans &rArr; atoi &rArr; strtol &rArr; _strtoul
</UL>
<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="#[14a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;strcmp
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<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
</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
</UL>
<BR>[Calls]<UL><LI><a href="#[b6]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Buzzer_Init
@@ -2453,20 +2446,20 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[41]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM7_IRQHandler
</UL>
<P><STRONG><a name="[15d]"></a>ZeroOffset_Calibration</STRONG> (Thumb, 110 bytes, Stack size 0 bytes, attitudealgorithms.o(i.ZeroOffset_Calibration))
<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="[14c]"></a>__0vsprintf</STRONG> (Thumb, 30 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<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
<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>
<P><STRONG><a name="[172]"></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)
<P><STRONG><a name="[173]"></a>__2vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<P><STRONG><a name="[172]"></a>__2vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<P><STRONG><a name="[174]"></a>__c89vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<P><STRONG><a name="[173]"></a>__c89vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf), UNUSED)
<P><STRONG><a name="[138]"></a>vsprintf</STRONG> (Thumb, 0 bytes, Stack size 24 bytes, printfa.o(i.__0vsprintf))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = vsprintf
@@ -2474,7 +2467,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf
</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
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
@@ -2486,17 +2479,17 @@ Global Symbols
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;atoi
</UL>
<P><STRONG><a name="[175]"></a>__rt_errno_addr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr), UNUSED)
<P><STRONG><a name="[174]"></a>__rt_errno_addr</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, errno.o(i.__aeabi_errno_addr), UNUSED)
<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
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[150]">&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="#[151]">&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;sqrtf
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
<LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf
</UL>
<BR>[Called By]<UL><LI><a href="#[7c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_asinf
</UL>
@@ -2504,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))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = __hardfp_atan2f
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[150]">&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="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<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_infnan2
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_atan2f
</UL>
@@ -2515,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))
<BR><BR>[Stack]<UL><LI>Max Depth = 28<LI>Call Chain = __hardfp_cosf &rArr; __mathlib_rredf2
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[153]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
</UL>
<BR>[Called By]<UL><LI><a href="#[80]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_cosf
</UL>
@@ -2526,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))
<BR><BR>[Stack]<UL><LI>Max Depth = 36<LI>Call Chain = __hardfp_sinf &rArr; __mathlib_rredf2
</UL>
<BR>[Calls]<UL><LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[150]">&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="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
<BR>[Calls]<UL><LI><a href="#[151]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__set_errno
<LI><a href="#[154]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_rredf2
<LI><a href="#[14f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_underflow
<LI><a href="#[152]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_invalid
<LI><a href="#[150]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__mathlib_flt_infnan
<LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__ARM_fpclassifyf
</UL>
<BR>[Called By]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_sinf
</UL>
@@ -2539,48 +2532,48 @@ Global Symbols
<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
</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>
<BR>[Called By]<UL><LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_invSqrt
</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
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</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
</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
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</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
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_atan2f
<LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</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
</UL>
<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
</UL>
<P><STRONG><a name="[176]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[175]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[177]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[176]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[178]"></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))
<BR><BR>[Called By]<UL><LI><a href="#[14e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;sqrtf
<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="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;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="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_cosf
@@ -2597,26 +2590,26 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[24]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;TIM1_TRG_COM_TIM11_IRQHandler
</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
</UL>
<P><STRONG><a name="[5c]"></a>main</STRONG> (Thumb, 142 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
<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 = 208<LI>Call Chain = main &rArr; Visual_SendData &rArr; UART2_Printf &rArr; UART2_SendString &rArr; UART2_SendByte
</UL>
<BR>[Calls]<UL><LI><a href="#[15e]">&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="#[107]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;LED_BON
<LI><a href="#[137]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;UART2_Printf
<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="#[11b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;RefereeSystem_Init
<LI><a href="#[15d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;ZeroOffset_Calibration
<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="#[d7]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CloseLoopControl_Init
<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="#[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="#[13e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_Trans
<LI><a href="#[147]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;Visual_SendData
@@ -2624,10 +2617,10 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</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
</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>
<BR>[Called By]<UL><LI><a href="#[7d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__hardfp_asinf
</UL>
@@ -2645,24 +2638,24 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;CAN_GetITStatus
</UL>
<P><STRONG><a name="[15c]"></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
<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="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_update_kp_ki
</UL>
<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
</UL>
<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>
<BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update
</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
</UL>
<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>
<BR>[Called By]<UL><LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;accel_comple_filter
</UL>
@@ -2688,37 +2681,37 @@ Local Symbols
<BR><BR>[Called By]<UL><LI><a href="#[8a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;AHRS_update
</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
<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="#[71]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_dadd
<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>
<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>
<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
<LI><a href="#[15a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[158]">&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="#[156]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
<LI><a href="#[159]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_uidivmod
<LI><a href="#[157]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_pre_padding
<LI><a href="#[158]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_post_padding
<LI><a href="#[155]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_fp_digits
</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>
<P><STRONG><a name="[159]"></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
<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="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</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)
<BR><BR>[Called By]<UL><LI><a href="#[14d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
<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="#[14c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<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>
<BR>[Address Reference Count : 1]<UL><LI> printfa.o(i.__0vsprintf)
</UL><P>

View File

@@ -2273,7 +2273,7 @@ I (.\Library\stm32f4xx_dcmi.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164)
I (.\Library\stm32f4xx_gpio.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_rcc.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_flash.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_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.h)(0x64D03164)
I (.\Library\stm32f4xx_sdio.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 (.\Start\core_cmInstr.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 (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.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_exti.h)(0x64D03164)
I (.\Library\stm32f4xx_flash.h)(0x64D03164)
@@ -2477,7 +2477,7 @@ I (.\Library\stm32f4xx_can.h)(0x64D03164)
-o .\objects\m2006.o --omf_browse .\objects\m2006.crf --depend .\objects\m2006.d)
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 (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162)
@@ -2486,7 +2486,7 @@ I (.\Motor\M2006.h)(0x669D1190)
I (.\User\stm32f4xx_conf.h)(0x64D03180)
I (.\Library\stm32f4xx_adc.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_exti.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_dbgmcu.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_gpio.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
@@ -2566,7 +2566,7 @@ I (.\Library\stm32f4xx_can.h)(0x64D03164)
-o .\objects\warming.o --omf_browse .\objects\warming.crf --depend .\objects\warming.d)
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 (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162)
@@ -2577,7 +2577,7 @@ I (.\Control\PID.h)(0x68BF8A63)
I (.\Library\stm32f4xx_crc.h)(0x64D03164)
I (.\Library\stm32f4xx_dbgmcu.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_gpio.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)
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 (.\Start\core_cmInstr.h)(0x64D03162)
I (.\Start\core_cmFunc.h)(0x64D03162)
@@ -2674,13 +2674,13 @@ I (.\Function\CToC.h)(0x669D31F6)
I (.\Library\stm32f4xx_dbgmcu.h)(0x64D03164)
I (.\Library\stm32f4xx_dma.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_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_i2c.h)(0x64D03164)
I (.\Library\stm32f4xx_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.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_spi.h)(0x64D03164)
I (.\Library\stm32f4xx_syscfg.h)(0x64D03164)

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

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

View File

@@ -7,7 +7,7 @@
#include "visual.h"
#include "UART.h"
#define DELAY_TIME 5 //D1定时的计数值
#define DELAY_TIME 1 //D1定时的计数值
unsigned int Delay_Count; //D1的延时初始值
@@ -44,7 +44,8 @@ int main(void)
Visual_SendData();
Visual_Trans();//视觉数据传输
/*
if(Delay_Count) //每次大循环只执行一次
{
Delay_Count --; //只对计数值减一次1就跳出if
@@ -62,7 +63,7 @@ int main(void)
}
*/
Delay_us(1500);//CToC周期1.5ms
}

View File

@@ -54,7 +54,7 @@ void Mecanum_Init(void)
PID_PositionSetOUTRange(&Mecanum_SpeedPID[3],-15000,15000);
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_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)
CPU DLL: SARMCM3.DLL V5.43.0.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
<h2>Project:</h2>
C:\Users\LSMushui\Desktop\RM\New-Infantry-C-Board-Legacy\<5C><><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>\Project.uvprojx
Project File Date: 11/02/2025
C:\Users\LSMushui\Desktop\RM\workspace\Infantry-C-Board-from-PG\<5C><><EFBFBD><EFBFBD>\<5C><><EFBFBD><EFBFBD>\Project.uvprojx
Project File Date: 03/28/2026
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\Bin'
Rebuild target 'Target 1'
assembling startup_stm32f40_41xxx.s...
compiling system_stm32f4xx.c...
compiling stm32f4xx_cec.c...
compiling misc.c...
compiling stm32f4xx_adc.c...
compiling stm32f4xx_can.c...
compiling stm32f4xx_flash.c...
compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_dac.c...
compiling stm32f4xx_fsmc.c...
compiling stm32f4xx_crc.c...
compiling system_stm32f4xx.c...
compiling stm32f4xx_cryp_tdes.c...
compiling stm32f4xx_cryp.c...
compiling stm32f4xx_flash_ramfunc.c...
compiling stm32f4xx_cec.c...
compiling stm32f4xx_fmpi2c.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_dbgmcu.c...
compiling stm32f4xx_exti.c...
compiling stm32f4xx_dfsdm.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_dma2d.c...
compiling stm32f4xx_gpio.c...
compiling stm32f4xx_dma.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_dma.c...
compiling stm32f4xx_cryp_des.c...
compiling stm32f4xx_dsi.c...
compiling stm32f4xx_cryp_tdes.c...
compiling stm32f4xx_gpio.c...
compiling stm32f4xx_exti.c...
compiling stm32f4xx_dcmi.c...
compiling stm32f4xx_fsmc.c...
compiling stm32f4xx_cryp.c...
compiling stm32f4xx_flash.c...
compiling stm32f4xx_hash.c...
compiling stm32f4xx_hash_sha1.c...
compiling stm32f4xx_hash_md5.c...
compiling stm32f4xx_i2c.c...
compiling stm32f4xx_hash_sha1.c...
compiling stm32f4xx_iwdg.c...
compiling stm32f4xx_i2c.c...
compiling stm32f4xx_lptim.c...
compiling stm32f4xx_pwr.c...
compiling stm32f4xx_qspi.c...
compiling stm32f4xx_ltdc.c...
compiling stm32f4xx_rcc.c...
compiling stm32f4xx_rng.c...
compiling stm32f4xx_spdifrx.c...
compiling stm32f4xx_syscfg.c...
compiling stm32f4xx_sdio.c...
compiling stm32f4xx_sai.c...
compiling stm32f4xx_wwdg.c...
compiling stm32f4xx_spi.c...
compiling stm32f4xx_syscfg.c...
compiling TIM.c...
compiling stm32f4xx_spi.c...
compiling stm32f4xx_wwdg.c...
compiling Delay.c...
compiling stm32f4xx_rcc.c...
compiling stm32f4xx_sdio.c...
compiling stm32f4xx_usart.c...
compiling UART.c...
compiling stm32f4xx_rtc.c...
compiling stm32f4xx_tim.c...
compiling UART.c...
compiling CAN.c...
compiling LED.c...
compiling Buzzer.c...
compiling CAN.c...
compiling Remote.c...
compiling M3508.c...
compiling GM6020.c...
compiling Warming.c...
compiling M3508.c...
compiling LinkCheck.c...
compiling CloseLoopControl.c...
compiling Warming.c...
compiling CToC.c...
compiling PID.c...
compiling RefereeSystem.c...
compiling CloseLoopControl.c...
compiling RefereeSystem_CRCTable.c...
compiling Ultra_CAP.c...
compiling Mecanum.c...
compiling RefereeSystem.c...
compiling UI.c...
compiling stm32f4xx_it.c...
compiling Ultra_CAP.c...
compiling UI_Library.c...
compiling UI_Base.c...
compiling main.c...
compiling UI_Library.c...
linking...
Program Size: Code=18636 RO-data=1224 RW-data=408 ZI-data=2496
".\Objects\Project.axf" - 0 Error(s), 0 Warning(s).
@@ -108,7 +108,7 @@ Package Vendor: Keil
<h2>Collection of Component include folders:</h2>
<h2>Collection of Component Files used:</h2>
Build Time Elapsed: 00:00:05
Build Time Elapsed: 00:00:04
</pre>
</body>
</html>

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [.\Objects\Project.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image .\Objects\Project.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Wed Jan 21 18:47:23 2026
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060960: Last Updated: Thu Apr 09 17:08:04 2026
<BR><P>
<H3>Maximum Stack Usage = 232 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><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 (.\Start\core_cmInstr.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 (.\User\stm32f4xx_conf.h)(0x64D03180)
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
-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 (C:\Users\LSMushui\AppData\Local\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2)
I (.\Start\core_cmInstr.h)(0x64D03162)
@@ -2458,14 +2458,14 @@ I (.\Function\LinkCheck.h)(0x65F5DCF4)
I (.\Library\stm32f4xx_dma.h)(0x64D03164)
I (.\Library\stm32f4xx_exti.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_iwdg.h)(0x64D03164)
I (.\Library\stm32f4xx_pwr.h)(0x64D03164)
I (.\Library\stm32f4xx_rcc.h)(0x64D03164)
I (.\Library\stm32f4xx_rtc.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_tim.h)(0x64D03164)
I (.\Library\stm32f4xx_usart.h)(0x64D03164)

Binary file not shown.

Binary file not shown.

View File

@@ -12,7 +12,7 @@
<lExt>*.lib</lExt>
<tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<CppX>*.cpp; *.cc; *.cxx</CppX>
<nMigrate>0</nMigrate>
</Extensions>
@@ -28,7 +28,7 @@
<TargetOption>
<CLKADS>12000000</CLKADS>
<OPTTT>
<gFlags>1</gFlags>
<gFlags>0</gFlags>
<BeepAtEnd>1</BeepAtEnd>
<RunSim>0</RunSim>
<RunTarget>1</RunTarget>
@@ -73,11 +73,11 @@
<LExpSel>0</LExpSel>
</OPTXL>
<OPTFL>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget>
</OPTFL>
<CpuCode>18</CpuCode>
<CpuCode>0</CpuCode>
<DebugOpt>
<uSim>0</uSim>
<uTrg>1</uTrg>
@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>3</nTsel>
<nTsel>0</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@@ -114,39 +114,9 @@
<tDlgDll></tDlgDll>
<tDlgPa></tDlgPa>
<tIfile></tIfile>
<pMon>BIN\CMSIS_AGDI.dll</pMon>
<pMon>BIN\UL2CM3.DLL</pMon>
</DebugOpt>
<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>
<Number>0</Number>
<Key>UL2CM3</Key>
@@ -154,165 +124,18 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<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>
<THDelay>0</THDelay>
</Tracepoint>
<DebugFlag>
<trace>0</trace>
<periodic>1</periodic>
<aLwin>1</aLwin>
<periodic>0</periodic>
<aLwin>0</aLwin>
<aCover>0</aCover>
<aSer1>0</aSer1>
<aSer2>0</aSer2>
<aPa>0</aPa>
<viewmode>1</viewmode>
<viewmode>0</viewmode>
<vrSel>0</vrSel>
<aSym>0</aSym>
<aTbox>0</aTbox>
@@ -345,7 +168,7 @@
<pMultCmdsp></pMultCmdsp>
<DebugDescription>
<Enable>1</Enable>
<EnableFlashSeq>0</EnableFlashSeq>
<EnableFlashSeq>1</EnableFlashSeq>
<EnableLog>0</EnableLog>
<Protocol>2</Protocol>
<DbgClock>10000000</DbgClock>
@@ -1415,7 +1238,7 @@
<Group>
<GroupName>System</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1519,7 +1342,7 @@
<Group>
<GroupName>Algorithm</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1767,7 +1590,7 @@
<Group>
<GroupName>Control</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1799,7 +1622,7 @@
<Group>
<GroupName>CarBody</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1975,7 +1798,7 @@
<Group>
<GroupName>User</GroupName>
<tvExp>1</tvExp>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>

View File

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