诸位大侠好,为什么我的MEGA64的串口不能中断只能查询,我已经调一天了没有眉目啊,相关程序如下,实在找不出什么问题,请大侠帮我看看。///////////////////////////////////////////////////////////////// void Init_uart(void) //串口初始化函数 { UCSR0C=0X06; //N,8,1 UBRR0L=(F_CPU/BAUDRATE/16-1)%256; UBRR0H=(F_CPU/BAUDRATE/16-1)/256; UCSR0A=0X00; //非多机、非倍速 UCSR0B=(1<<RXCIE)|(1<<RXEN)|(1<<TXEN); //使能串口的接收和发送,使能串口的接收中断
} ///////////////////////////////////////////////////////////////////// void UARTsend(uchar send) //定义一个串口0发送一个字节的子程序 { while(!(UCSR0A & (1<<UDRE))); UDR0=send; } ///////////////////////////////////////////////////////////////////// SIGNAL(SIG_USART0_RECV) //串口接收中断 { uchar i=0; uint k=0; UCSR0B=(UCSR0B&0x7F); //关闭中断 rxd[0]=UDR0; //先收取第一个字节 UCSR0B=(UCSR0B|(1<<RXCIE)); //开放中断
} |