关于keil下 sprintf失效的问题

2019-08-13 18:36发布

今天碰到一个很奇怪的问题见下图
本来使用sprintf将浮点数转成字符串一直都很正常,今天突然发现转换出来的字符串都变成了整数,debug发现在小数点那一位开始被转换成了0x00,所以才导致小数点后面部分失效。不知道是什么原因,有没有哪位大神知道的。

无标题.jpg 无标题2.jpg


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
2条回答
siberianfox
2019-08-13 19:44
本帖最后由 siberianfox 于 2017-10-20 10:08 编辑
正点原子 发表于 2017-10-20 00:27
str放全局变量,然后8字节对齐,试试看

原子哥,问题解决了,发现有个地方写错了。
我用的是大彩的串口屏,自己写了个读RTC的函数。如图所示,这个函数循环读取的地方写漏了,这导致在调用的时候执行了很多次这个函数。调用完了之后,后面所有的sprintf都会又奇奇怪怪的问题。虽然解决了但是还是不太明白为什么调用太多次就会导致sprinf出错...堆栈的原因?

修改前: bug2.jpg
修改后: bug.jpg


一周热门 更多>