本帖最后由 lvben5d 于 2022-12-17 08:00 编辑
前天将我手头KF8 IDE V2.73更新到了官网新版本,以为可以更稳定,发现IDE优化了编译信息。导致我ADC读值为0
源码如下:
函数当中 意图是 将float类型的 tmp的 整型部分,赋值给 u16 类型的SysInfo.step_motor_current = tmp;
这个在老的IDE里,是OK的。 一直调试用了几个月没动,昨天去更新了IDE 2.7.5后。 同样这里的代码就出事了,非0浮点型赋值过去 SysInfo.step_motor_current 一直为0.
经过一个下午分析,修改为这样 可以解决问题:
将tmp 修改为 u32 tmp; 至于 原本*5.0 /5.6欧的举动 全部化为整数 *50 /56 刚好多*10和 多/10回去。 这样就可以调试OK,否则就挂了~~~~~~~
备注: 不过因为是编译出现反复,不应该用上述方式是适配,因为可能有其他潜在问题也不好说,还是先保留稳定版本。
厂家为兼容其他型号,修改了编译器引起,正在解决问题,KF8的IDE 全局变量里不支持浮点显示,所以我12.21V 都是放大100倍变成u16类型来处理。
|