部分代码展示:下载文件有完整工程
/*************************************/
// 定义PID相关宏
// 这三个参数设定对电机运行影响非常大
// PID参数跟采样时间息息相关
/*************************************/
#define CUR_P_DATA 0.35f // P参数
#define CUR_I_DATA 0.6f // I参数
#define CUR_D_DATA 0.0f // D参数
#define TARGET_CURRENT 300 // 最大电流值 300mA
#define SPD_P_DATA 4.5f // P参数
#define SPD_I_DATA 0.5f // I参数
#define SPD_D_DATA 0.0f // D参数
#define TARGET_SPEED 20.0f // 目标速度 20r/m
#define LOC_P_DATA 0.009f // P参数
#define LOC_I_DATA 0.002f // I参数
#define LOC_D_DATA 0.04f // D参数
#define TARGET_LOC (3*PPR) // 目标位置 11880Pulse = 1r
/* 私有变量 ------------------------------------------------------------------*/
__IO uint8_t Start_flag = 0; // PID 开始标志
uint32_t Motor_Dir = CW; // 电机方向
__IO int32_t tmpPWM_DutySpd = 0;
__IO int32_t tmpPWM_Duty = 0;
/* 用于保存转换计算后的数值 */