处理器为STM32F207,我的串口1初始化正常,其向PC上串口发送, printf("\r\ntest gprs start\n"); 调试助手正常。但是,我用调试助手向串口发送数据,却总是收不全,而且每次收到的不一样?为啥?我觉得我尽可能解决了好多问题。
不过,我不想让每次收到的数据都挨着,所以加了个换行语句USART_SendData(USART1 ,0xA);结果就不行了!
while (1)
{
/* 等待USART1接收数据完毕 */
if(USART_GetFlagStatus(USART1 , USART_IT_RXNE) == SET)
{
/* 向串口发送接收到的数据 */
USART_SendData(USART1 , USART_ReceiveData(USART1));
/* 短延时,保证收发稳定性 */
for(i = 0; i < 500; i ++);
USART_SendData(USART1 ,0xA);
for(i = 0; i < 500; i ++);
while(USART_GetFlagStatus(USART1,USART_IT_TXE) == SET);
}
}
我发送的是abcdefgfgdfgdfgdfgdfgdfgdfg,但是收获结果为:
abcd
abcd
a
abcdefg
abcde
abcd
abcdefg
a
请问为啥?谢谢 |