atmega64 串口发送数据正常,但是接收数据时,进不了接收中断??哪里有问题?
void uart0_init(void)
{
UCSR0A=0x00;
UCSR0B =0X00;
UBRR0H=((f_cpu/usart_baud/16)-1)/256; //波特率寄存器
UBRR0L=((f_cpu/usart_baud/16)-1)%256; //..
UCSR0B=(1<<UDRIE0)|(1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0); //接收结束中断使能,接收中断,发送中断
UCSR0C=(1<<UCSZ01)|(1<<UCSZ00); //异步模式+8位数据+1停止位+无校验
}
#pragma interrupt_handler uart0_rx_isr:iv_USART0_RXC
void uart0_rx_isr(void)
{
unsigned char x=0;
x=UDR0;
usart_send_data(x);
}
void init_devices(void)
{
//stop errant interrupts until set up
CLI(); //disable all interrupts
XDIV = 0x00; //xtal divider
XMCRA = 0x00; //external memory
port_init();
uart0_init();
MCUCR=0x00;
SEI();
}
|