51中调用sprintf与strcpy的问题

[复制链接]
 楼主| 黑小子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

粉丝
快速回复 在线客服 返回列表 返回顶部