串口配置信息如下:
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里加同样的代码,这个多余的位又没了。我很困惑,到底哪个是正常的状态?如何保证两个字节是紧密相邻的?请高手赐教! |