参考链接http://blog.sina.com.cn/s/blog_88534dff0102vtep.html
初始化后,用了自创的printf,结果串口助手软件显示不出字符来。但实际显示了接收的字符个数。
用hex显示一看。原来多了一个0x00.
然后只是初始化,不用printf。果然发送了一个0x00.
网上查了一下,有这些说法:
在ourdev上有:
http://www.amobbs.com/thread-3807784-1-1.html
无论这么设置USart,上电后都会发送一个无效字符,这个是STATUS寄存器的上电初始值有问题造成的,Usart的发送数据寄存器有一个缓冲移位寄存器。并且发送有两个状态,一个是发送数据寄存器为空,一个是移位寄存器发送完成。上电后Usart的状态寄存器的发送完成位为0,造成了上电以后会始终会有一个值被发送,这个值就是发送移位寄存器中的值,而这个值有时候是0X00有时候是0XFE 。 要解决这个问题,在初始化的时候先初始化Usart,然后再配置Usart的GPIO位,就可以避免Usart上电发送一个无效字符的问题。 ---------------------------------
|