打印
[AVR单片机]

avr 485串口通信无法接收数据

[复制链接]
3083|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
giant_bird|  楼主 | 2013-5-19 17:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码如下:
unsigned char USART_DataRCV(unsigned char *s)
{   
     int i=0;
     while (!(UCSR0A & (1<<RXC0)));   /*等待接受数据*/

     while(*s)
    {
        s[i]=UDR0;
        if(s[i] == '\0' || s[i] == NULL)
              break;
        delay_us(500);
        i++;
    }
    Receiveflag = 1;  //置标志位

     return Receiveflag;
}

/*函数的功能是:当串口接收到数据后,每次PC向单片机发送3个十六进制数,单片机就将收到的数据返给PC端*/
void myReceive()   
{
     if(USART_DataRCV(Data))   //已经定义了全局变量unsigned char  Data[4];
    {
           Receiveflag = 0;
           usartsend(Data,strlen(Data));
          delay_ms(500);
      }
}

编译没有问题。但是现在PC端接收不到数据。用的是ICCAVR编译器。如果是单片机预定义向PC端发送数据是可以的,但是就是接收以后发送不行。
实在是玩不转它了。跪求高手或者不高手帮忙解决一下。

相关帖子

沙发
giant_bird|  楼主 | 2013-5-19 19:23 | 只看该作者
自己顶一下。  虚心求指点啊

使用特权

评论回复
板凳
huangxz| | 2013-5-19 21:17 | 只看该作者
giant_bird 发表于 2013-5-19 19:23
自己顶一下。  虚心求指点啊

接收程序是有问题的,应该没次读UDR之前都要判断RXC

使用特权

评论回复
评分
参与人数 1威望 +6 收起 理由
qin552011373 + 6 很给力!
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

12

帖子

1

粉丝