awping 发表于 2013-5-26 14:10:51

急急急,MEGA64串口1离奇问题,接收中断无法进入...

// actual baud rate:57600 (0.0%)
void uart1_init(void)
{
UCSR1B = 0x00; //disable while setting baud rate
UCSR1A = 0x00;
UCSR1C = 0x06;
UBRR1L = 0x0F; //set baud rate lo
UBRR1H = 0x00; //set baud rate hi
UCSR1B = 0x98; //0B10011000---RXCIE/TXCIE/UDRIE/RXEN/TXEN/UCSZ2/RXB8/TXB8
}

void port_init()
{
        //RXD1
        DDRD&=~BIT2;
        //TXD1
        DDRD|=BIT3;
}

int main(void)
{
        port_init();
        uart1_init();
        sei();
        while(1)
        {
        }
}


void USART1_RX_vect(void) __attribute__((interrupt));
void USART1_RX_vect(void)
{
        LED_ON;
        UART1_Send_Byte(UART1_Receive_Byte());
}

可以肯定的是硬件电路没问题,串口1可以正常收发数据,但只能查询状态收,设置成中断模式后不灵。
串口初始化用ICC生成的,编译环境AVR STUDIO 4,中断函数格式参照WINAVR帮助文件,外部14.7456M有源晶振,熔丝已设置到外部时钟源,ATmega103模式禁用,反复调试还是不给力呀,急死了

awping 发表于 2013-5-26 14:52:28

在线等,在线等
页: [1]
查看完整版本: 急急急,MEGA64串口1离奇问题,接收中断无法进入...