马老师,你好,请教
我用两个atmega16相通信,只接用线连 txd(0)----rxd(1),rxd(0)----txd(1).用查询方式通信,调试不出来,请问这样连接有问题吗? 公地 我共地了。 void usart_init(void){
UCSRB = 0x00;
UCSRA = 0x00;
UCSRC = (1<<URSEL) | (3<<UCSZ0);
UBRRL = 0x06;
UBRRH = 0x00;
UCSRB = 0x18;
}
void usart_tr (unsigned char ddr_tr)
{
while (!(UCSRA&(1 << UDRE)));
UDR = ddr_tr;
}
unsigned char usart_re(void)
{
while(!(UCSRA&(1<<RXC)));
return UDR;
}
这是我的程序,帮我看看 弄好了,一条程序害的。
我用来做判断的rxc写不格式不对
我用if(rxc)来做的判断,这样做,编译不会出错,但是意义差大了。
改为if ((UCSRA&0x80)==0)后就好了。
页:
[1]