本帖最后由 地瓜patch 于 2025-4-11 17:43 编辑
为了测试串口8小时后数据恒定不变的问题,在仿真时偶然注意到结构体数据乱了
//******************************************************
stm32f407串口读取stm32f070数据,6小时后数据为恒定值
https://bbs.21ic.com/icview-3440 ... 9C%B0%E7%93%9Cpatch
(出处: 21ic电子技术开**坛)
//******************************************************
如下图,创建一个包含11元素的结构体。
结构体kp=0,ki=0.25, kd=0
程序跑起来后,有时kp=0.25,或out的数据
有时ki = 0
有时kd=0.25,kd=101
与相邻的数据相等的概率较大。
其他几个参数是实时变化的无法观察。
因为这三个数据变化一闪而过,截不到图
结构体如下定义
typedef struct PidObject
{
volatile float kp; //比例系数
volatile float ki; //积分系数
volatile float kd; //微分系数
volatile float desired; //目标值
volatile float error; //误差
volatile float preverror; //前一个误差
volatile float integ; //误差积分
volatile float deriv; //误差微分
volatile float MaxValue; //输出最大值
volatile float MinValue; //输出最小值
volatile float out; //输出值
} __attribute__((packed))PidObject_t;
大事件
|