久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5241|回復: 1
打印 上一主題 下一主題
收起左側

求解釋,485通信一次接收多個數據的中斷怎么不能用?

[復制鏈接]
跳轉到指定樓層
樓主
ID:59780 發表于 2014-5-7 14:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
void ser() interrupt 4   //串行中斷服務程序
{
unsigned char i,j,Check,tmp;
if(RI==1)      //接收標志位為1時,接收
  {
  RI=0;
  tmp=SBUF;  
  }
while(!RTUOverFlag)    //結束標志位為0時
  {   
  if(RTUStartFlag==0) //開始標志位為0時
   {
   if(tmp!='@')  //判斷數據幀的起始位,不是@時不接收
    {
    RTUOverFlag=0;
    RTUStartFlag=0;        
    return;
    }     
   if(tmp=='@') //開始接收
    {
    UART_R_RTU[RTUPst]=tmp;  // 接收起始位
    RTUPst++;   
    RTUOverFlag=0;
    RTUStartFlag=1;//已接收起始位
    return;
    }
   }
  else    //接收剩余數據
   {
   if(tmp!='#') //接收結束位#之前的數據
    {
    UART_R_RTU[RTUPst]=tmp;
    RTUPst++;
    return;
    }
   else  //接收結束位#
    {                           
    UART_R_RTU[RTUPst]=tmp;
    RTUOverFlag=1; //完成接收,置標志位
    ES=0;   //關串口中斷
    REN=0;   //不允許接收
    if(UART_R_RTU[1]!=ExtsAddr) //判斷數據第二位是否與本機地址相同,如果不相同
     {
     for(j=0;j<10;j++)   //數據清零,標志位清零,允許接收,開串口中斷
      UART_R_RTU[j]=0;
     RTUPst=0;
     RTUOverFlag=0;
     RTUStartFlag=0;
     REN=1;
     ES=1;
     return;
     }
    Check=0;  //初始化校驗位
    RTUDataLen=UART_R_RTU[3]; //讀數據長度
    for(i=0;i<3+RTUDataLen;i++)     //校驗位
     {
     Check=Check+UART_R_RTU[i+1];
     }
    if(Check!=UART_R_RTU[RTUPst-1]) //判斷校驗位是否與接收到的數據中的校驗位相同,如果不相同
     {
     for(j=0;j<10;j++)  //清零數據,清標志位,允許接收,開串口中斷
      UART_R_RTU[j]=0;
     RTUPst=0;
     RTUOverFlag=0;
     RTUStartFlag=0;
     REN=1;
     ES=1;
     return;
     }
    else        //接收到完整數據情況下,置接收完成標志,清接收標志為下次接收做準備
     {     
     UARTRTUDataCheckedFlag=1;     
     RTUFunc=UART_R_RTU[2];
     RTUPst=0;
     RTUOverFlag=0;
     RTUStartFlag=0;
     REN=1;
     ES=1;
     return;
     }
    }
   }  
  }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:2318 發表于 2014-7-8 17:15 來自手機 | 只看該作者
你這個程序是不是只能接受第一個數據?
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 麻豆av一区二区三区久久 | 欧美一区二区三区四区视频 | 国产成人叼嘿视频在线观看 | 黄色在线免费观看 | 国产精品视频网站 | 中文字幕亚洲区 | 美女天天操 | 好姑娘影视在线观看高清 | 欧洲毛片 | 日韩资源 | 91精品在线观看入口 | 国产成人影院 | 欧美一区二区三区免费在线观看 | 亚洲成人一二三 | 天堂免费| 欧美视频1区 | 成人av片在线观看 | 欧美成人a | 日韩精品一区二区三区免费观看 | 99re6在线视频精品免费 | 欧美日韩不卡 | 福利视频大全 | 国产精品日日摸夜夜添夜夜av | 日韩成人免费中文字幕 | 激情五月婷婷 | 2019天天干夜夜操 | 精品一二三区在线观看 | 国产精品嫩草影院精东 | 欧美一区二区三区在线视频 | 午夜影视 | 激情久久av一区av二区av三区 | 成人免费大片黄在线播放 | 成人免费在线视频 | 亚洲国产精品一区二区第一页 | 成人综合一区 | 欧美一区二区 | 天天射天天干 | 91亚洲一区 | 精品国产鲁一鲁一区二区张丽 | 天天爽天天操 | 羞羞视频免费观看 |