STM32F103ZET6的串口问题

[复制链接]
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部