suwei218 发表于 2007-5-29 22:09:37

在硬件上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是如何检测发送程序的?

machao 发表于 2007-5-29 23:00:12

请学习数字电路和计算机原理的课程。



没有1 + 1 、2 * 2的算术基础,就不会懂微积分的。
页: [1]
查看完整版本: 在硬件上UDRE是如何置一的呢?