標(biāo)題: 請教AVR單片機(jī)URAT串行通信 [打印本頁]

作者: schgao    時間: 2009-4-16 08:47
標(biāo)題: 請教AVR單片機(jī)URAT串行通信
void uart_send(uchar data)
{
   while(!(UCSRA&(BIT(UDRE)))) ;
   UDR=data;
   while(!(UCSRA&(BIT(TXC))));
   UCSRA|=BIT(TXC); 
}

上面的一小段程序?yàn)锳VR串行通信發(fā)送一個字節(jié)數(shù)據(jù)的程序
關(guān)于UCSRA|=BIT(TXC); 這句話不太理解
1.本來while(!(UCSRA&(BIT(TXC))));這句話已經(jīng)檢測到TXC為1了,為什么還要多UCSRA|=BIT(TXC); 這句話將其置1呢?
2.置1干什么啊,我覺得應(yīng)該是置0啊,就好象51的單片機(jī)里面的TI標(biāo)志位一樣。
請高手解釋一下吧,謝謝!

作者: 九天牧歌    時間: 2009-4-24 00:28
在AVR中是使用置1的方式來清除標(biāo)志位的,請查閱手冊
作者: lf1984376    時間: 2010-2-24 16:13
一樓正解




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1