打印

51中调用sprintf与strcpy的问题

[复制链接]
1097|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
黑小子mxx|  楼主 | 2014-10-26 16:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 黑小子mxx 于 2014-10-26 16:51 编辑

由于需要用到串口通信,讲数据发送给上位机,于是想到用sprintf和strcpy函数。
比如
sprintf(buffer, "%5.1f, %5.1f, %5.1f, %5.1f\n", a, b, c, d );
send_data(buffer);
memset(buffer, 0, srelen(buffer));
可是每次执行到sprintf的时候单片机就会死机,据网上说是堆栈溢出的原因,不知各位前辈有没有什么比较好的解决办法?
另外。如果说要自己写一个函数的话应该如何实现呢?

相关帖子

沙发
xlsbz| | 2014-10-26 21:25 | 只看该作者
最后的方法是 不用printf。

等个几年再用。

嗯 还是看情况。如果只是暂时高点51,用用也可以。如果以后一直搞51  还是基础要牢固

使用特权

评论回复
板凳
黑小子mxx|  楼主 | 2014-10-28 12:20 | 只看该作者
xlsbz 发表于 2014-10-26 21:25
最后的方法是 不用printf。

等个几年再用。

肯定只是暂时的,现在51和STM32没法比了已经。
但是碰到一个很头疼的问题,用Keil连接后显示data大小为180个字节左右,因为串口发送和接收缓冲区就占了100个字节,是不是因为这个原因导致堆栈溢出呢,256字节RAM实际能用的又有多少?不知道有没有什么比较好的解决办法呀?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

42

主题

307

帖子

2

粉丝