| 程序是使用中断方式接收PC数据,然后回发, A和B采用TC和TXE标志判断。
 A程序发送的数据长度超多一定程度(比如20),发送几次单片机就停了,不知怎么回事。
 B程序无任何问题
 使用串口调试助手,发送间隔20ms
 程序A:
 void USART1_IRQHandler(void)
 {
 uint8_t ch;
 if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
 {
 ch = USART_ReceiveData(USART1);
 while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET);
 USART_SendData(USART1,  ch);
 
 }
 }
 
 程序B:
 
 void USART1_IRQHandler(void)
 {
 uint8_t ch;
 if(USART_GetITStatus(USART1, USART_IT_RXNE) == SET)
 {
 ch = USART_ReceiveData(USART1);
 while (USART_GetFlagStatus(USART1,USART_FLAG_TXE) == RESET);
 USART_SendData(USART1,  ch);
 
 }
 }
   
 
 |