打印
[AVR单片机]

89C51通讯程序请教

[复制链接]
2161|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Tomzong|  楼主 | 2007-1-24 15:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想从串口所读的数据中分离出"$1#"有用数据,进行LED灯延时实验.但测试了一下未能通过,还望大家指点一二!
void ISR_ES(void) interrupt 4

 unsigned char temp;   
 if(RI==1)
 {
   RI = 0;
   temp = SBUF;
   if(temp == 0x24)      //$
   {
     recvLen = 0;
     buff[0]= temp;
   }
   else if(temp==0x23)            //# 
    {
     buff[2] = temp;
     if (recvLen==1)
     {
     //协议报文收齐,进行判断并处理
        if (buff[1]==0x31)        //1
        {
         ch3=0;
         ledFlag=1;
        }
     }
     else
     {
        buff[recvLen]=temp;
     }
     recvLen++;
     }
   if ((recvLen==2) && (temp!=0x23))
   {     
    //接收的数据有误    
   } 
  
 }
 if(TI==1)
 {
   TI=0;
 }
}

void main()
{  
  while(1)
 {
  if(ledFlag) 
   {
    ch3 = 0;    
    delay(10000);   
    ch3 = 1;   
    delay(10000); 
   }
 }
}

相关帖子

沙发
wan_aigo| | 2007-2-11 15:11 | 只看该作者

通信

发送可以不用中断

使用特权

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

本版积分规则

35

主题

93

帖子

0

粉丝