本帖最后由 SUPER_CRJ 于 2018-2-27 16:36 编辑
如下:在STM32F1编程中使用了类似下面的函数:
char Value[30];
sprintf( Value,"%3.1lf",19.0);
格式化后Value里面为0.0。但是之前是OK的,突然有一天不可以了,之前没有解决,查看网上的解决办法,说是8字节对齐,但是看了μc/OS-Ⅲ中的堆栈都是8的整数倍,怀疑是使用了:#para强制对齐造成的结果(项目其它地方使用的!)。现在要如何解决这个问题呢?我当前的方法是:sprintf( Value,"%d.%d",190/10,190%10);请问大家有没有更好的方法?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
应该是8字节堆栈问题,我可能是之前用了#para强制对齐,才导致的,那你现在是怎么解决的呢?分享一下,让更多的人知道解决方法。
一周热门 更多>