打印
[AVR单片机]

请问ATMEGA48串口设置的问题

[复制链接]
2114|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
rabbityang|  楼主 | 2009-3-2 10:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好!我现在在使用MEGA48芯片,外部晶振是8M,希望串口波特率是9600,
我用ICCAVR软件,生产的设置代码,然后向PC的串口发送数据,实际效果是要1200才能正确收到数据。别人说是熔丝位的问题,也有人说不是。到底是哪里出了问题啊?请高人指点一下。谢谢!
//UART0 初始化
void uart0_init(int bps)
{
 int  temp;
 temp=Fosc/bps/8-1;

 UCSR0B = 0x00; //disable while setting baud rate
 UCSR0A = 0x00;
 
 UBRR0L =temp;    
 UBRR0H =(temp>>8);

 UCSR0C = 0x06;
 UCSR0A = 0x02; //enable    2倍波特率
 UCSR0B = 0x98;  
}
//call this routine to initialize all peripherals
void init_devices(void)
{
 //stop errant interrupts until set up
 CLI(); //disable all interrupts
 port_init();
 uart0_init();

 MCUCR = 0x00;

 SEI(); //re-enable interrupts
 //all peripherals are now initialized
 
}

相关帖子

沙发
dadodo| | 2009-3-3 13:07 | 只看该作者

这个熔丝位设置

虽然外接8M晶振,熔丝位设置还是内部RC振荡器?熔丝位的CKDIV8是不是编程了?

使用特权

评论回复
板凳
tjjack| | 2009-3-3 13:12 | 只看该作者

re

问题很明显了,你的工作频率是1M

使用特权

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

本版积分规则

1

主题

1

帖子

0

粉丝