学前班
最后登录1970-1-1
在线时间 小时
注册时间2017-10-10
|
用usart发送两个字节的数据时,如果发送的数据是比较小的数,比如1236,就发送正常;但是如果发送比较大的数据时,数据的发送就出现问题,比如我发送的是0x5689,下载程序之后只显示56,然后,按下复位,就出现8956,后面一直是这样。我感觉像是数据已经写到数据寄存器了,但是数据并没有从数据寄存器发送出来,等到下一次复位的时候才从数据寄存器发送出去。
发送5689,结果就错了
另外,我试了一下,第一次先发送569A,结果是56,9A56,9A56,9A56,……;第二次改变代码,发送5689,结果是9A56,8956,8956,8956……,这个9A应该就是上一次程序里面的,但是没有发送出去,等我再次写入程序后,就又发送出去了。
而且,我还试了发送一个字节,如果发送0x12这样的小数没问题,但是发送0x89这样比较大的数据,和前面差不多,下载程序后没有反应,然后在按下复位出现8989,再按下复位又是没反应,然后在按一次,又出现两个89。
随后,我又尝试了发送数组,字符串,并没有什么问题,我寻思可能是因为没有判断USART_FLAG_TC发送完成标志位的问题,结果加上之后,仍然没有解决问题。
我用例程里面的尝试之后,结果也是一样,我换了1.2版本的串口调试助手也还一样,希望火哥能够帮忙解决。
|
-
发送1236,结果是正常的
|