打印

STM32F103ZET6的串口问题

[复制链接]
2388|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cbcn|  楼主 | 2011-10-10 19:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
串口配置信息如下:
  USART_InitStructure.USART_BaudRate = 19200;
  USART_InitStructure.USART_WordLength = USART_WordLength_8b;
  USART_InitStructure.USART_StopBits = USART_StopBits_1;
  USART_InitStructure.USART_Parity = USART_Parity_No;
  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;
然后在主程序里连续发数据
while(1)
{
    while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
    USART_SendData(USART2, 0x0A);
}
我希望字节是连续发出的,即前一个字节的停止位紧接着下一个自己的起始位。但是用示波器看波形,发现两个字节之间多了一个高电平位,更为诡异的是,我在另外一个project里加同样的代码,这个多余的位又没了。我很困惑,到底哪个是正常的状态?如何保证两个字节是紧密相邻的?请高手赐教!
沙发
xhtxzxw| | 2011-10-10 19:40 | 只看该作者
while(USART_GetFlagStatus(USART2, USART_FLAG_TC) == RESET);
改成:
while(USART_GetFlagStatus(USART2, USART_FLAG_TXE) == RESET);
再试试吧

使用特权

评论回复
板凳
cbcn|  楼主 | 2011-10-10 19:56 | 只看该作者
改后问题解决,谢谢!

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝