amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
查看: 2366|回复: 7

请马老师帮我看一下我的UART接收是那的问题

[复制链接]
发表于 2009-11-1 22:54:45 | 显示全部楼层 |阅读模式
我用两个单片机实现通讯,在发送端可以进入发送完成中断,可以确定没有问题,在接受端怎么接收不到,而且无法进入接收完成中断,搞半天不知是哪里的问题,请帮我分析一下,谢谢!
以下是采用缓冲思路的代码
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
   unsigned char status,data;
   status=UCSR0A;
   data=UDR0;           
   //如果没有错误那么以下的检测位将为0,如果出错将为1
   if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
   {
      rx_buffer[rx_wr_index]=data;
      if (++rx_wr_index == RX_BUFFER_SIZE)
         rx_wr_index=0;
      if (++rx_counter == RX_BUFFER_SIZE)
      {
         rx_counter=0;
         rx_buffer_overflow=1;
      }
   }
}

//读取接受缓冲区的数据
unsigned char getchar(void)
{
   char data;
   if(rx_counter>0)
   {     
      data=rx_buffer[rx_rd_index];
      if (++rx_rd_index == RX_BUFFER_SIZE)
         rx_rd_index=0;
      #asm("cli")                                                                        
      --rx_counter;
      #asm("sei")
      return data;
   }
   return 0;
}
 楼主| 发表于 2009-11-1 23:11:06 | 显示全部楼层
我在线等,知道的朋友可以讲一下吗!
发表于 2009-11-2 08:52:17 | 显示全部楼层
接收端串口初始化贴出来看看
发表于 2009-11-2 16:37:50 | 显示全部楼层
这个是书上的缓冲队列例程吧。先确定下两机的自发自收有没问题。我也做了两机收发,没成功。看下硬件电路有没问题。
 楼主| 发表于 2009-11-2 18:34:38 | 显示全部楼层
我的自发自收没有问题,以下是初始化
// 初始化串行异步通讯
void usart_init(unsigned char band)
{      
   UCSR0B=0X00;  //disable while setting baud rate
   UCSR0A=0X00;
   //设置波特率
   UBRR0L=band;
   UBRR0H=0x00;
   //设置帧格式:8个数据位,2个停止位
   UCSR0C=(1<<USBS0)|(3<<UCSZ00);
   //接收器和发送器使能,接收完成中断使能
   UCSR0B=(1<<TXEN0)|(1<<RXEN0)|(1<<RXCIE0);     
}
 楼主| 发表于 2009-11-2 18:35:23 | 显示全部楼层
马老师能抽点时间帮我看看吗
发表于 2010-2-23 13:04:18 | 显示全部楼层
SREG=0X80   总中断没有打开吧
头像被屏蔽
发表于 2011-12-17 09:58:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 公安备案:44190002001997(交互式论坛) 工信部备案:粤ICP备09047143号 )

GMT+8, 2019-9-20 10:19

阿莫电子论坛, 原"中国电子开发网"

© 2004-2018 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表