野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10258|回复: 1

stm32f103 USART发送数据错误

[复制链接]
发表于 2017-11-15 20:55:57 | 显示全部楼层 |阅读模式
用usart发送两个字节的数据时,如果发送的数据是比较小的数,比如1236,就发送正常;但是如果发送比较大的数据时,数据的发送就出现问题,比如我发送的是0x5689,下载程序之后只显示56,然后,按下复位,就出现8956,后面一直是这样。我感觉像是数据已经写到数据寄存器了,但是数据并没有从数据寄存器发送出来,等到下一次复位的时候才从数据寄存器发送出去。

发送5689,结果就错了

发送5689,结果就错了


另外,我试了一下,第一次先发送569A,结果是56,9A56,9A56,9A56,……;第二次改变代码,发送5689,结果是9A56,8956,8956,8956……,这个9A应该就是上一次程序里面的,但是没有发送出去,等我再次写入程序后,就又发送出去了。
QQ图片20171115202004.png
而且,我还试了发送一个字节,如果发送0x12这样的小数没问题,但是发送0x89这样比较大的数据,和前面差不多,下载程序后没有反应,然后在按下复位出现8989,再按下复位又是没反应,然后在按一次,又出现两个89。
随后,我又尝试了发送数组,字符串,并没有什么问题,我寻思可能是因为没有判断USART_FLAG_TC发送完成标志位的问题,结果加上之后,仍然没有解决问题。
我用例程里面的尝试之后,结果也是一样,我换了1.2版本的串口调试助手也还一样,希望火哥能够帮忙解决。

发送1236,结果是正常的

发送1236,结果是正常的
回复

使用道具 举报

发表于 2017-11-16 08:54:50 | 显示全部楼层
换个串口调试助手看看,这软件可能有bug
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 22:22 , Processed in 0.029165 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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