解释代码char uart_getch_c(void) { while(1) { if(rUTRSTAT1 & 0x1) { f_nSelectUart = UART1; return RdURXH1(); } if(rUTRSTAT0 & 0x1) { f_nSelectUart = UART0; return rURXH0; } } }
时间: 2024-03-04 10:50:41 浏览: 54
UART.rar_C8051F020 Uart1_The C Word
这段代码是一个函数,名为"uart_getch_c",作用是从UART串口读取一个字符。
函数内部首先进入一个无限循环,不停地执行下面的操作。
首先判断UART1端口的RTRSTAT寄存器的最低位是否为1,如果是则表示有字符可读。将全局变量"f_nSelectUart"赋值为UART1,表示读取的字符来自UART1端口。然后调用"RdURXH1"函数,该函数的作用是从UART1端口的接收缓冲器中读取一个字符,并将其返回。
如果UART1端口没有可读的字符,则判断UART0端口的RTRSTAT寄存器的最低位是否为1,如果是则表示有字符可读。将全局变量"f_nSelectUart"赋值为UART0,表示读取的字符来自UART0端口。然后直接从UART0端口的接收缓冲器中读取一个字符,并将其返回。
如果两个UART端口都没有可读的字符,则继续执行循环,直到有字符可读为止。
综上所述,这段代码主要是用于从UART串口读取一个字符,会优先从UART1端口读取,如果没有可读的字符,则从UART0端口读取。
阅读全文