yanghuai1023 发表于 2013-8-3 14:06:00

求助串口1接收中断!!

void uart1_init(void) //USART1初始化
{
UCSR1B = 0x00;   //关闭USART1
UCSR1A = 0x00;   //不适使用倍速发送
UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);//数据位为八位
UBRR1L=(fosc/16/(baud+1))%256;//异步正常模式下,UBRR的计算公式
UBRR1H=(fosc/16/(baud+1))/256;
UCSR1B =(1<<RXEN1)|(1<<TXEN1); //接收使能,传送使能
}

//#pragma interrupt_handler uart1_rx_isr:iv_USART1_RX
#pragma interrupt_handler uart1_rx_isr:31
void uart1_rx_isr(void)
{
//uart has received a character in UDR
unsigned char temp;
temp = UDR1;
rx_data = temp;
//UCSR0B=0xD8 ;
}
void putchar1(uchar c)//串口1发送字符
{
while (!(UCSR1A&(1<<UDRE1)));//表明发送器一准备就绪
UDR1=c;   
}

void main(void)
{
CLI(); //disable all interrupts
//port_init();
PORTD = 0x06;
DDRD= 0x0a;
PORTC = 0xFF;
DDRC= 0xFF;
uart1_init();
SEI(); //re-enable interrupts
while(1)
{
        if(rx_data==0x55)
        {
       PORTC=0x0f;
        }   
        if(rx_data==0xaa)
        {
       PORTC=0xf0;
        }   
}
}


我的mcu是M64,iccavr下,串口中断收不到数据,不知道是哪里出了问题,请给位老大帮忙看看是哪里不对,谢谢!

hongkong 发表于 2013-8-3 15:52:31

注意重复发帖也会被封锁ID,可以在原帖中更新

yanghuai1023 发表于 2013-8-3 18:55:25

哦哦
还真不知道啊{:handshake:}
页: [1]
查看完整版本: 求助串口1接收中断!!