打印
[AVR单片机]

求助atmega128 单片机串口初始化问题

[复制链接]
982|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
paishen|  楼主 | 2014-12-9 16:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用atmega128 做串口通信实验,发现串口初始化有问题,注释掉的五行程序其中的任意一行都会使程序死在里面,求助诸位大侠。
我用的gccavr编译器
//        UCSR0C|=(_BV(UCSZ01))|(_BV(UCSZ00));        //异步 无校验 8数据位 1停止位
//        UBRR0H=0;
//        UBRR0L=103;         //从手册中查表得 16M  9600
//        UCSR0B|=_BV(TXEN0)|_BV(RXEN0)|_BV(RXCIE0);         //发送使能 接收使能 接收完毕中断使能
//        sei();         //开总中断

void usart_io_init()
{
        PORTE = 0xFF;   //设置RXD0和TXD0
        DDRE  = 0x02;                        //PE1 TXD为输出状态
}

void usart_init()
{
        uint temp;
       
        usart_io_init();
        UCSR0A=0X00;                                //串口控制器A清零
        UCSR0B=0X00;                                //串口控制器B清零
//        UCSR0C|=(_BV(UCSZ01))|(_BV(UCSZ00));        //异步 无校验 8数据位 1停止位
//        UBRR0H=0;
//        UBRR0L=103;                                //从手册中查表得 16M  9600
//        UCSR0B|=_BV(TXEN0)|_BV(RXEN0)|_BV(RXCIE0);                //发送使能 接收使能 接收完毕中断使能
//        sei();                                        //开总中断
}

相关帖子

沙发
paishen|  楼主 | 2014-12-9 16:42 | 只看该作者
已经解决了。

不用usart_init()函数

直接把函数内容写在主程序里面就好了,请问这是什么原因啊,求指教。。。

使用特权

评论回复
板凳
wangch_sh| | 2014-12-9 17:37 | 只看该作者
为什么要注释掉?

使用特权

评论回复
地板
paishen|  楼主 | 2014-12-9 18:55 | 只看该作者
不注释的话程序会卡在那里

使用特权

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

本版积分规则

8

主题

15

帖子

1

粉丝