用atmega128 做串口通信实验,发现串口初始化有问题,注释掉的五行程序其中的任意一行都会使程序死在里面,求助诸位大侠。
我用的gccavr编译器
// UCSR0C|=(_BV(UCSZ01))|(_BV(UCSZ00)); //异步 无校验 8数据位 1停止位
// UBRR0H=0;
// UBRR0L=103; //从手册中查表得 16M 9600
// UCSR0B|=_BV(TXEN0)|_BV(RXEN0)|_BV(RXCIE0); //发送使能 接收使能 接收完毕中断使能
// sei(); //开总中断
void usart_io_init()
{
PORTE = 0xFF; //设置RXD0和TXD0
DDRE = 0x02; //PE1 TXD为输出状态
}
void usart_init()
{
uint temp;
usart_io_init();
UCSR0A=0X00; //串口控制器A清零
UCSR0B=0X00; //串口控制器B清零
// UCSR0C|=(_BV(UCSZ01))|(_BV(UCSZ00)); //异步 无校验 8数据位 1停止位
// UBRR0H=0;
// UBRR0L=103; //从手册中查表得 16M 9600
// UCSR0B|=_BV(TXEN0)|_BV(RXEN0)|_BV(RXCIE0); //发送使能 接收使能 接收完毕中断使能
// sei(); //开总中断
} |