在硬件上UDRE是如何置一的呢?
可能是我对于问题的描述不太清楚吧,我仔细看了讲义,只是不太明白硬件的具体顺序吧,因为从C语言程序上,我看不出来硬件的执行顺序吧。具体的程序可以看一下这个程序,是串口的发送程序,可能具体的细节会有问题
void USART0_Transmit (unsigned char data)
{/*wait for empty transmit buffer*/
while ( ! (UCSR0A&(1<<UDRE0)));
/*Put data into buffer ,sends the data*/
UDR0= data;
}
main()
{void usart_init(unsigned int baud);
USART0_Transmit (unsigned char data);
}
在调用发送函数后,会查询UDRE的状态,置一后会自动发送字符。那么UDRE是如何置一的呢?
书上说移位寄存器写入后会将UDRE置一,在硬件上是什么样的操作或者是什么逻辑操作使UDRE发生变化的呢??CPU是如何检测发送程序的? 请学习数字电路和计算机原理的课程。
没有1 + 1 、2 * 2的算术基础,就不会懂微积分的。
页:
[1]