我尝试使用uart
协议接收一个字符但是在收到第一个字符后Receiver Holding Register
(RHR)存储它并在读取之后它的值不会改变。但我怎么知道收到一个新角色让它成为之前收到的同一个角色。
我正在使用这个循环:
while((AT91C_BASE_US0->US_CSR & AT91C_US_RXRDY) == AT91C_US_RXRDY)
buffer=AT91C_BASE_US0->US_RHR;
并且只要条件为true
并且接收器没有收到新字符,则缓冲区存储接收到的前一个字符并保持相同,直到接收到新字符并且此过程继续进行并且上...!
答案 0 :(得分:0)
我得到了答案,我只需要遵循以下条件:
while(!(AT91C_BASE_US0->US_CSR & AT91C_US_RXRDY){}
buffer=AT91C_BASE_US0->US_RHR;
说明:没有可以使用的中断,我不得不不断检查它们(CSR和RXRDY)两者都变为真时的情况,这表明收到了新字符。 (基本上是手写中断)