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