有关串口通信USART_TC寄存器的一个问题

2019-07-20 01:59发布

int main(void)
{
u8 len;
u8 i;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
led_init();
    key_init();
exti_init();
    delay_init(168);
    while(1)
{
  if(USART_RX_STA&0x8000)
  {
   len=USART_RX_STA&0x3fff;
   for(i=0;i<len;i++)
   {
    USART_SendData(USART1,USART_RX_BUF);
       while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);
   }
   USART_RX_STA=0;
  }
}
}
这是原子哥提供的例程代码,while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);TC寄存器不是发送完成标志吗?在这个地方我接收了一串字符,在for循环里向电脑发送这串字符,如果没有发送完的话,不就在这个while里死循环了??

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。