OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3427|回复: 2

关于keil下 sprintf失效的问题

[复制链接]

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2017-10-11
在线时间
45 小时
发表于 2017-10-19 20:26:18 | 显示全部楼层 |阅读模式
1金钱
今天碰到一个很奇怪的问题见下图
本来使用sprintf将浮点数转成字符串一直都很正常,今天突然发现转换出来的字符串都变成了整数,debug发现在小数点那一位开始被转换成了0x00,所以才导致小数点后面部分失效。不知道是什么原因,有没有哪位大神知道的。

无标题.jpg 无标题2.jpg


最佳答案

查看完整内容[请看2#楼]

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

使用道具 举报

2

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
123
金钱
123
注册时间
2017-10-11
在线时间
45 小时
 楼主| 发表于 2017-10-19 20:26:19 | 显示全部楼层
本帖最后由 siberianfox 于 2017-10-20 10:08 编辑
正点原子 发表于 2017-10-20 00:27
str放全局变量,然后8字节对齐,试试看

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

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


回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165536
金钱
165536
注册时间
2010-12-1
在线时间
2117 小时
发表于 2017-10-20 00:27:55 | 显示全部楼层
str放全局变量,然后8字节对齐,试试看
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 22:55

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表