所以我有我正在查看的旧代码,我应该为新的微控制器更新。在旧代码中,有一个功能可以刷新 USART,以防一开始就出现垃圾。代码如下:
#define RXC 7
#define RX_COMPLETE (1<<RXC)
void UART1_FLUSH(void){
unsigned char dummy;
while ( UCSR1A & RX_COMPLETE ) dummy = UDR1;
}
现在据我了解,只要从寄存器 UDR1 从 USART 中读取某些内容,while 循环就会继续运行,这就是为什么它被存储在 dummy 中的原因,因为我们不需要它。现在我需要帮助向我解释的是为什么 while 循环会以它的方式工作?