搜索
bottom↓
回复: 7

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

[复制链接]

出0入0汤圆

发表于 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;
}

出0入0汤圆

 楼主| 发表于 2009-11-1 23:11:06 | 显示全部楼层
我在线等,知道的朋友可以讲一下吗!

出0入0汤圆

发表于 2009-11-2 08:52:17 | 显示全部楼层
接收端串口初始化贴出来看看

出0入0汤圆

发表于 2009-11-2 16:37:50 | 显示全部楼层
这个是书上的缓冲队列例程吧。先确定下两机的自发自收有没问题。我也做了两机收发,没成功。看下硬件电路有没问题。

出0入0汤圆

 楼主| 发表于 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);     
}

出0入0汤圆

 楼主| 发表于 2009-11-2 18:35:23 | 显示全部楼层
马老师能抽点时间帮我看看吗

出0入0汤圆

发表于 2010-2-23 13:04:18 | 显示全部楼层
SREG=0X80   总中断没有打开吧
头像被屏蔽

出0入0汤圆

发表于 2011-12-17 09:58:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-9 04:38

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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