打印
[STM8]

STM8S005X6芯片轮询方式接收串口数据出现部分数据错乱

[复制链接]
859|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eeff|  楼主 | 2017-2-10 11:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位好, 最近在使用stm8s005x6芯片, 在上面做了一个串口接收数据的功能. 采用了轮询的方式来发送/接收串口数据.  为了保存接收到的串口数据, 我开辟了一个缓存区, 一开始的时候我使用了动态申请内存来给这个缓存区空间:
u8 *pBuf = (u8*)calloc(1, size);
接收串口数据的时候发现在收到的数据中始终有一些是错误的(我通过将收到的数据通过串口发送回给PC机的串口助手来确认的), 比如发送的数据为 F1 02 50 00 00 50 59 00 FE , 收到的时候 F1 02 50 00 00 50 00 0C FE
然后使用
u8 pBuf[128] 在栈上定义空间的方式来接收串口数据, 发现接收到的串口数据就正确了.
这就很奇怪了, 各位知道是什么情况吗?

我使用的是ST Visual Develop来开发的, STM8S的芯片参数大致为:
16MHz晶振, 2K RAM, 128 字节EEPROM
沙发
eeff|  楼主 | 2017-2-10 15:26 | 只看该作者
本帖最后由 eeff 于 2017-2-10 16:18 编辑

解决了, 自己回复一下.
原来是由于我Debug导致的. 不Debug直接运行就没有问题. 好奇怪呀. 难道Debug会影响内存的值吗?

使用特权

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

本版积分规则

1

主题

4

帖子

0

粉丝