打印
[AVR单片机]

atmega48串口接收脚接收数据不置接收标志位

[复制链接]
3143|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hopehit|  楼主 | 2013-1-9 18:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
huangxz| | 2013-1-9 19:59 | 只看该作者
格式对不对,bps,起始位,停止位等?

使用特权

评论回复
板凳
hopehit|  楼主 | 2013-1-9 20:11 | 只看该作者
波特率,起始位,停止位都是对的 8.1,even
同样的程序ptoteus仿真,会正确置接收标志位

使用特权

评论回复
地板
huangxz| | 2013-1-10 13:43 | 只看该作者
楼主可以先试试自发自收可不可以,AVR只要启用了UART,其io口自动被用于uart通信,所以你说的那种情况应该是没有问题的。

使用特权

评论回复
5
fp123123| | 2013-1-10 14:29 | 只看该作者
本帖最后由 fp123123 于 2013-1-10 18:26 编辑

刚好我用的也是MEGA48,你把熔丝里的晶振设置为外部晶振,然后把串口改成这段代码看有没有接收到数据,如果没有就把芯片对应脚位重新焊一次,我做的一批产品有几个是重新焊接后才接收到数据的

纠正:下面的程序是M8的

// 8M晶振,9600bps
void UART_Begin()
{
  UCSRA = 0x02;
  UCSRB = 0x98;
  UCSRC = 0x86;
  UBRRH = 0;
  UBRRL = 103;
}

使用特权

评论回复
6
liusensen| | 2013-1-10 14:37 | 只看该作者
专业知识帮不上忙  

使用特权

评论回复
7
airwill| | 2013-1-10 15:24 | 只看该作者
同意5楼, 估计是串口的初始化没有做好吧

使用特权

评论回复
8
hopehit|  楼主 | 2013-1-10 16:54 | 只看该作者
fp123123 发表于 2013-1-10 14:29
刚好我用的也是MEGA48,你把熔丝里的晶振设置为外部晶振,然后把串口改成这段代码看有没有接收到数据,如果 ...

换成外部晶振也不行,把很早以前的一块板子拿过来,把程序灌进去,可以正确置标志位。


void usart_init(U16 baud)
{
        DDRD  |= (1<<DDD1)|(1<<DDD2);      //set direction
        PORTD |= (1<<PD0)|(1<<PD1);        //
        UBRR0H =  (U8)(baud>>8);                 // set baud rate
        UBRR0L =  (U8)baud;
        UCSR0A |= (1<<UDRE0);                              //Send buffer empty
#if 0
        UCSR0B |= (1<<RXCIE0) | (1<<TXCIE0) | (1<<RXEN0) | (1<<TXEN0);//enabled usart port and interupt
#else
       UCSR0B |= (1<<RXEN0) | (1<<TXEN0);
#endif
UCSR0C |= (3<<UCSZ00) | (1<<UPM01)|(0<<USBS0); //frame format even check 8 data bit 1 stop bit
}

使用特权

评论回复
9
fp123123| | 2013-1-10 18:21 | 只看该作者
本帖最后由 fp123123 于 2013-1-10 18:25 编辑

不好意思,5楼的程序是M8的,这个项目同时用了2种MCU,下面这个才是M48的,注意这个程序是用中断方式接收的

// 8M晶振,9600bps
void UART_Begin()
{
  UCSR0A = 0;
  sbi(UCSR0A, U2X0);

  UBRR0H = 0;
  UBRR0L = 103;

  sbi(UCSR0B, RXEN0);
  sbi(UCSR0B, TXEN0);
  sbi(UCSR0B, RXCIE0);
}

// 中断接收
SIGNAL(USART_RX_vect)
{
  uint8_t rx = UDR0;

  // 加上你自己的处理
  ...
}

使用特权

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

本版积分规则

2

主题

9

帖子

1

粉丝