AVR单片机485通讯问题

[复制链接]
2475|4
 楼主| 失控的单片机 发表于 2014-7-12 11:24 | 显示全部楼层 |阅读模式
九位数据 第九位为1表示是地址,第九位为0表示的是数据,当为地址的时候我把UCSRA的MPCM置为0等待接收下一次发送过来的数据。。。程序怎么实现(把这一次UCSRA的状态保持到下一次数据接收完成)
ningling_21 发表于 2014-7-12 15:22 | 显示全部楼层
8位数据不能区分地址和数据吗?
原野之狼 发表于 2014-7-12 20:50 | 显示全部楼层
485咋还有个数据地址位?表示不明白...
 楼主| 失控的单片机 发表于 2014-7-19 10:04 | 显示全部楼层
ningling_21 发表于 2014-7-12 15:22
8位数据不能区分地址和数据吗?

void jiehsou_data(uchar data)//接收函数子函数
{
   if(start_data==0) //第一个帧头判断
   {
      if(data==0X70)
         
            start_data=1;
          
        else
          
           start_data=0;
          
   }
  else if(start_data==1)//第二个帧头判断
   {
       if(data==0XEB)
            
                 start_data=2;
                 
        else
       
             start_data=0;
             
   }
   else if(start_data==2)//开始接收数据
   {
      tongbu_word[dataconter++]=data;//保存数据
          if(data==0XFF)//接收到结束标志
            {
                   retval=0xaa;//接收完成数据置位
                   dataconter=0;
                   start_data=0;
                   //return;
                }   
   }
}
数据我是一个一个的发给单片机,这么写可以把接收到的数据存储到数组里面么  ,,我是新手,求高手师傅指教一下
ningling_21 发表于 2014-7-19 10:14 | 显示全部楼层
失控的单片机 发表于 2014-7-19 10:04
void jiehsou_data(uchar data)//接收函数子函数
{
   if(start_data==0) //第一个帧头判断

可以接收,问题不大...
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

41

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部