27,375
社区成员
发帖
与我相关
我的任务
分享
//方案1
UDR=SendData[CountI];
while ((UCSRA & 0x20)==0); //(1<<UDRE)
Delayms(10);
//方案2
while ((UCSRA & 0x20) == 0); //1 << UDRE
UDR = SendData[CountI];
//方案3
UDR = SendData[CountI];
while ((UCSRA & 0x40) == 0); //1<<TXC
UCSRA |= 0x40;
UBRRH= 0x01;
UBRRL= 0x37;
UCSRB |= (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC = 0xB6;//1011 0110 (1<<URSEL)|(1<<UPM1)|(1<<UPM0)|(1<<UCSZ1)|(1<<UCSZ0)
这是1MHZ RC的串口初始化代码:
UBRRH= 0x00;
UBRRL= 0x33;
UCSRB |= (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
UCSRC |= (1<<UPM1)|(1<<UPM0);
请大家看一下,该改哪里呢?
6Mhz晶振时完全正常的程序,到了1MHZ时就死活不能用了。