打印
[AVR单片机]

求助:MEGA16在ICCAVR中的串口中断发送

[复制链接]
2909|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dcp|  楼主 | 2007-10-22 14:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
//UART0 initialize
// desired baud rate: 2400
// actual: baud rate:2404 (0.2%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
    UCSRB = 0x00; //disable while setting baud rate
    UCSRA = 0x00;
    
    UBRRL = 0x19; //set baud rate lo
    UBRRH = 0x00; //set baud rate hi
    //UCSRB = 0xD8;
    UCSRB = (1 << RXCIE) | (1 << TXCIE) | (1 << RXEN) | (1 << TXEN);
    UCSRC = BIT(URSEL) | 0x06;
}



//------------------------------------------------------------------------------
#pragma interrupt_handler uart0_rx_isr:12
void uart0_rx_isr(void)
{   
    //uart has received a character in UDR
  
    PutUartRx(UDR);//中数接收就OK!

}
//==============================================================================
//------------------------------------------------------------------------------
unsigned char a = 1;
#pragma interrupt_handler uart0_tx_isr:14
void uart0_tx_isr(void)
{
    //character has been transmitted    
    UDR = a;                         //这样发送数据错在哪里?串口助手收不到数据,

}
//==============================================================================


void main(void) 

    init_devices(); 
    while(1) 
    { 
        //putchar(a);这样查询发数就没有问题
    } 


请各位AVR高手帮忙,谢谢...


相关帖子

沙发
hotpower| | 2007-10-23 01:42 | 只看该作者

俺用IAR编的供参考~~~

使用特权

评论回复
板凳
dcp|  楼主 | 2007-10-23 15:02 | 只看该作者

UCSRB &= ~(1 << UDRIE);

谢谢HOTPOWER

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

dcp

71

主题

720

帖子

1

粉丝