C8051F340 UART0/1 用法!

UART 的 RX 如果不用 interrupt 收資料,等於沒用。

要如何使用呢??有兩種方法。

1)Flag
volatile bit TI0_proxy = 1;
void UART0_ISR( void ) interrupt 4
{
if ( TI0 == 1 ) { // set the proxy when TI0 is set
TI0 = 0;
TI0_proxy = 1;
}
if ( RI0 == 1 ) {
RI0 = 0;
...
}
}

unsigned char putchar( unsigned char ch )
{
while ( TI0_proxy == 0 );
TI0_proxy = 0;
return (SBUF0 = ch);
}

真是簡單的方法!當然效能差。重點是簡單。


2)Ring Buffer

效能好。
相對麻煩。不過也沒那麼複雜。 Sample code 比較多。上網參考囉。
http://www.cygnal.org/ubb/Forum5/HTML/000497.html
http://www.8052.com/codelib

留言

張貼留言

這個網誌中的熱門文章

NMEA標準格式 -- GPS

網路 Transformer 的用途

cut,sed,awk 字串處理