下边是uart1串口发送程序:
void uart1_tx(unsigned char tx_data )
{
UDR1 = tx_data;//这句要放在while前边才可以,不知道为什么
while( !(UCSR1A & 0x40) );
UCSR1A |= 0x40;
delay(0xff);
}
如果我把UDR1 = tx_data;放到while( !(UCSR1A & 0x40) );后边,通信就不正常
不知道为什么.........................
不管放在while这句前边后边,都应该可以的,我这么认为。。。。。
还有就是通信速率问题,baud = 115200 时,就乱码了,不知道为什么
是不是mega64的uart通信速率根本就达不到115200,或者更高???? |