亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? receivetest__.c

?? 關于rs485通信及iic通信的程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
      if(Tx_Count<Send_Size)                                 // 還沒有發送到待發送數據包的最后一個字節
      {
     
           if(Send_Status==0x00)                             // 發送狀態0x00表示正常發送狀態
           {
                if(*P_RS485_Send_Buff==Data_Head)            // 當待發送的數據為Data_Head時,
                {                                            // 將狀態轉為0x01轉換數據狀態;
                    Send_Status=0x01;                        // 并發送0x7D
                    UDR=0x7D;     
                }
                else if(*P_RS485_Send_Buff==Data_Change)     // 當待發送的數據為Data_Head時,
                {
                    Send_Status=0x02;                        // 將狀態轉為0x02轉換數據狀態;  
                    UDR=0x7D;                                // 并發送0x7D
                } 
                else 
                {
                    UDR=*P_RS485_Send_Buff;                  // 沒有轉移,將待發送數據輸出到數據寄存器                 
                    P_RS485_Send_Buff++;                     // 發送數據指針加1
                    Tx_Count++;                              // 發送計數器計數1次    
                } 
           }
           
           else if(Send_Status==0x01)                        // 發送狀態為0x01時,
           {
                UDR=0x5E;                                    // 將0x5E輸出到數據寄存器
                Send_Status=0x00;                            // 發送狀態轉為正常發送狀態0x00,待發送下一字節數據
                P_RS485_Send_Buff++;                         // 發送數據指針加1
                Tx_Count++;                                  // 發送計數器計數一次     
           }   
                                                               
           else if(Send_Status==0x02)                        // 發送狀態為0x02時,  
           { 
                UDR=0x5D;                                    // 將0x5E輸出到數據寄存器
                Send_Status=0x00;                            // 發送狀態轉為正常發送狀態0x00,待發送下一字節數據
                P_RS485_Send_Buff++;                         // 發送數據指針加1
                Tx_Count++;                                  // 發送計數器計數一次     
           }    
      
   
      }

      else                                                   // 發送完待發送數據最后一個字節
      {
          UDR=0x7E;                                          // 發送0x7E作幀結束標志
          Tx_Send_End=1;                                     // 置位發送結束標志        
      }
    
  }  

  else                                                       // 發送完一幀數據
  {
      DRE = 0;                                               // 發送完數據包之后,將485轉換到接收狀態 
      Tx_Send_End=0;                                         // 清發送結束標志
      Tx_Count=0;                                            // 發送完之后,中斷發送計數器Tx_Count清0 
      Start_Delay=1;                                         // 發送完一幀數據之后啟動延時檢測回復包程序
  }

}





//----------------------------------------------------------------------------------------------   
//
//對接收到在接收緩沖區的數據進行判斷,為回復包還是為數據包,為回復包的作數據處理
INT8U RS485_Data_Judge(void)
{  

  
  if((RS485_Receive_Buff[FunctionCode] & 0x80)==0x80)   // 當功能代碼第七位為1時,接收到的為回復包,進行回復包處理
  {   
   return 0;                                            // 為回復包時返回0值  
  }
  
  else 
  {
   return 1;                                            // 當功能代碼第七位為0,即接收到的為數據包,返回1值
  }
}


//----------------------------------------------------------------------------------------------   
// 字節判斷函數
// 接收到的為數據包,再作判斷,數據包處理函數   接收到的字節數與功能代碼中說明的字節一致返回1,不一致返回0
INT8U  RS485_Byte_Judge(void)
{ 
 INT8U Handle_Data; 
 Byte_Len=0;                                            
 Handle_Data=RS485_Receive_Buff[FunctionCode] & 0x30;
 switch(Handle_Data)
 {
  case 0x00:
     if(Receive_Count==8)
     {
       Byte_Len=8;
       return 1; 
     }
     break;
     
  case 0x10:
     if(Receive_Count==40)
     {
       Byte_Len=40;
       return 1;
     }
     break;
     
  case 0x20:
     if(Receive_Count==128)
     {
       Byte_Len=128;
       return 1;
     }
     break;
  
   default:
        return 0;
        break;
   
 }
}


//----------------------------------------------------------------------------------------------   
// 
// 簡單累加和校驗,包括數據包和校驗,數據頭和校驗
INT8U RS485_CRC_Judge(void)
{
  INT8U count;
     Receive_CheckHead=0;
      for(count=0; count<Byte_Len;count++)
      { 
        if(count==7)
        {
         //
        }
        else
        {
          Receive_CheckHead += RS485_Receive_Buff[count];       // 更新累加數據頭和校驗信息
        }
      }
     
 
   if(Receive_CheckHead==RS485_Receive_Buff[7])
   //if((Receive_CheckData==RS485_Receive_Buff[6]) && (Receive_CheckHead==RS485_Receive_Buff[7]))
   {     
      return 1;                                     //校驗正確返回1;   
   }
   else
   {
      return 0;                                        // 校驗錯誤返回0;
   }
} 
            
// //----------------------------------------------------------------------------------------------   
// //
// // 判斷是否為自己的地址或廣播地址,自己的地址返回Address_Self,廣播地址返回Address_Broad;都不是返回Address_Rong
// INT8U   RS485_Address_Judge(void)
// {
//   INT8U data;
//   data=RS485_Receive_Buff[0];
//   if(data==RS485_Address_Broad)
//   {
//     return Address_Broad;
//   }
//   
//   else if(data==RS485_Address_Self)
//   {
//     return Address_Self;
//   }     
//   else
//   {
//     return  Address_Rong;
//   }
// }
//  
// 



//----------------------------------------------------------------------------------------------   
//
//IIC發送數據處理函數
void IIC_Send_Handle()
{
  INT8U i=12;
  INT8U IIC_Send_Count;
  UpdateFlag=1;                                               // 表示有數據更新          
  if( (RS485_Receive_Save[Order_Attribute]==0x42)||(RS485_Receive_Save[Order_Attribute]==0x62)
      ||(RS485_Receive_Save[Order_Attribute]==0x46) )         // 判斷命令屬性是否符合要求 
  
  {
     IICSendBuff[0]= 0x01;                                    // 狀態標志不為0時,為有數據狀態(命令屬性符合要求的狀態)     
     IICCSendDataheck += IICSendBuff[0];
     
     for(IIC_Send_Count=1;IIC_Send_Count<7;IIC_Send_Count++)
     {
        if(IIC_Send_Count==5)  
        {
           i=i+1;
        }
     
        IICSendBuff[IIC_Send_Count]=RS485_Receive_Save[i];
        IICCSendDataheck += IICSendBuff[IIC_Send_Count];
        i++;
     }
          
      IICCSendDataheck=(~IICCSendDataheck)+0x01;
      IICSendBuff[IIC_Send_Count]=IICCSendDataheck;         // 校驗和,單字節累加和補碼
  
  
  } 
  
  else
  {
    IICSendBuff[0]=0;                                         // 狀態標志為0時,為無數據狀態(命令屬性不符合要求的狀態)                                
  }
                                     
}

//----------------------------------------------------------------------------------------------   
//
//IIC接收數據處理函數
void IIC_Receive_Handle()
{  
 { 
    INT8U i,m,t;
    INT8U Aim_ID=8;
    RS485_Send_Buff[0]= 0x41;                    // 待發數據的目的地址為射頻地址0x41
    RS485_Send_Buff[1]= RS485_Address_Self;      // 待發送數據的源地址為本機地址
    RS485_Send_Buff[2]= 0x10;                    // 待發送數據的功能代碼,為首發40個字節的數據包
    RS485_Send_Buff[12]= 0x82;                   // 待發數據的源設備ID首位,源設備ID為82,0,0,01。
    RS485_Send_Buff[15]= 0x01;                   // 待發數據的源設備ID末位,源設備ID為82,0,0,01。
    RS485_Send_Buff[16]= 0x42;                   // 命令屬性,此定為B,即0x42
    RS485_Send_Buff[17]= IICReceiveBuff[5];      // 命令參數,為IIC接收數據的第5位,第6位
    RS485_Send_Buff[18]= IICReceiveBuff[6];      // 命令參數,為IIC接收數據的第5位,第6位
    RS485_Send_Buff[23]= 0x10;                   // 待發數據有效數據的位數,此為16位數據
   for(i=1;i<5;i++)                              // 待發送數據的目標設備ID,為IIC接收到數據的第1到第4位置  
   {
     RS485_Send_Buff[Aim_ID]= IICReceiveBuff[i];
     Aim_ID++;
   } 
   
   for(m=8;m<40;m++)
   {
     Send_CheckData += RS485_Send_Buff[m];   
   }
   RS485_Send_Buff[6]=Send_CheckData; 
   
   for(t=0;t<7;t++)
   {
    Send_CheckHead += RS485_Send_Buff[t];   
   }
   RS485_Send_Buff[7]=Send_CheckHead; 

 }
 RS485_Send_Flag=1;

}



//----------------------------------------------------------------------------------------------   
//
// 設置回復包程序
void RS485_Answer_Set(void)
{
  INT8U i,Send_Answer_Checksum=0;
  //將目的地址和源地址放及回復包功能代碼位放入回復回復包緩沖區RS485_Answer_Send_Buff
  RS485_Answer_Send_Buff[0]= RS485_Receive_Buff[1];     // 目的地址放入發送回復包緩沖區
  RS485_Answer_Send_Buff[1]= RS485_Receive_Buff[0];     // 源地址放入發送回復包緩沖區
  RS485_Answer_Send_Buff[2]= 0x80;                      // 回復包功能代碼
  
  for(i=0;i<7;i++)
  {
    Send_Answer_Checksum+=RS485_Answer_Send_Buff[i];
  }
  
  RS485_Answer_Send_Buff[7]=Send_Answer_Checksum;
                        
}



//----------------------------------------------------------------------------------------------   
//
//數據包處理函數
void RS485_Data_Handle(void)
{

  INT8U Byte_Flag;                              // 字節標志,字節數相符為1,否則為0
  INT8U CRC_Flag;                               // CRC標志,CRC校驗正確為1,否則為0 
  INT8U Address_Flag;                           // 地址標志,有自己本身地址。廣播地址,和其他地址
  INT8U Receive_Data_Type;  
  
  Byte_Flag=RS485_Byte_Judge();  
  CRC_Flag=RS485_CRC_Judge();  
  //Address_Flag= RS485_Address_Judge();
  Address_Flag= RS485_Receive_Buff[0];
  Receive_Data_Type=RS485_Data_Judge();          // 判斷為回復包還是為數據包
  
  if(Byte_Flag==1)
  {
      if(CRC_Flag==1) 
      {
        
         if(Address_Flag==RS485_Address_Self)
         {         
            if(Receive_Data_Type==0)  
            {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小宝寻花一区二区三区| 视频在线观看国产精品| 欧美性受极品xxxx喷水| 久久av资源网| 香蕉久久夜色精品国产使用方法| 在线免费观看不卡av| 国产中文字幕精品| 欧美aaa在线| 香港成人在线视频| 亚洲人成人一区二区在线观看 | 一区二区在线观看不卡| 久久精品无码一区二区三区| 51精品视频一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 欧美一区二区三区男人的天堂| 日韩欧美一二三| xvideos.蜜桃一区二区| 亚洲国产高清在线观看视频| 亚洲色大成网站www久久九九| 一区二区视频在线看| 香港成人在线视频| 国产一区二区福利视频| av网站免费线看精品| 欧美性高清videossexo| 欧美本精品男人aⅴ天堂| 国产精品国产三级国产aⅴ入口| 亚洲毛片av在线| 美女视频免费一区| 91在线视频网址| 91麻豆精品91久久久久久清纯| 欧美一区二区二区| 国产精品久久福利| 日韩中文字幕亚洲一区二区va在线| 久久成人免费网站| 色狠狠一区二区| 2020国产成人综合网| 亚洲另类色综合网站| 激情欧美一区二区| 97久久精品人人做人人爽| 欧美一卡二卡在线观看| 综合久久久久综合| 国产麻豆午夜三级精品| 欧美日韩亚洲综合一区| 国产精品网站一区| 美女免费视频一区二区| 91黄色激情网站| 国产欧美日韩久久| 免费欧美日韩国产三级电影| 91蜜桃视频在线| 国产网站一区二区三区| 蜜臀91精品一区二区三区| 色综合色综合色综合| 欧美激情一区二区三区蜜桃视频| 日本在线不卡视频| 欧美午夜视频网站| 中文字幕日韩一区| 不卡在线视频中文字幕| 久久综合色天天久久综合图片| 婷婷中文字幕综合| 欧美日韩一区视频| 亚洲国产一区二区三区青草影视| k8久久久一区二区三区| 久久欧美中文字幕| 免费日韩伦理电影| 欧美一区二区三区人| 香蕉久久一区二区不卡无毒影院| 色就色 综合激情| 亚洲欧美乱综合| 99精品久久免费看蜜臀剧情介绍| 欧美国产欧美综合| 丁香网亚洲国际| 国产欧美日韩三区| 成人av在线电影| 成人欧美一区二区三区黑人麻豆| av在线一区二区| 亚洲色图欧美激情| 在线视频欧美精品| 丝袜脚交一区二区| 日韩午夜中文字幕| 日本一不卡视频| 欧美tickle裸体挠脚心vk| 国产九色sp调教91| 国产精品伦理在线| 成人免费毛片嘿嘿连载视频| 中文字幕在线一区二区三区| 色综合久久久久网| 日韩黄色一级片| 精品国产一区a| 国产丶欧美丶日本不卡视频| 欧美激情自拍偷拍| 欧美午夜电影一区| 久久精品久久精品| 国产欧美精品一区二区色综合朱莉 | 九九九精品视频| 久久久久国产精品免费免费搜索| 成人天堂资源www在线| 亚洲嫩草精品久久| 欧美日韩成人在线一区| 韩国精品一区二区| 成人欧美一区二区三区1314| 欧美亚洲动漫另类| 激情亚洲综合在线| 亚洲视频图片小说| 欧美成人精品3d动漫h| av午夜一区麻豆| 日本在线观看不卡视频| 中文字幕乱码一区二区免费| 欧美日韩色一区| 成人福利视频网站| 日韩va欧美va亚洲va久久| 国产日韩欧美高清在线| 欧美人成免费网站| 成人性生交大片免费看视频在线 | 91在线观看地址| 日本亚洲免费观看| 亚洲免费在线看| 2020国产精品自拍| 欧美人与z0zoxxxx视频| www.日韩大片| 国产精品一区二区无线| 午夜视频久久久久久| 国产精品网站在线| 26uuu精品一区二区在线观看| 91国偷自产一区二区开放时间| 国产一区二区三区视频在线播放| 亚洲一区二区三区四区不卡| 国产精品你懂的在线欣赏| 91精品午夜视频| 欧美性生活影院| 日本高清无吗v一区| 狠狠色丁香久久婷婷综合_中| 亚洲高清视频的网址| 一区二区三区国产| 中文字幕在线免费不卡| 亚洲精品一区二区三区香蕉| 欧美精品少妇一区二区三区| 在线亚洲欧美专区二区| 成人国产免费视频| 国产河南妇女毛片精品久久久 | 亚洲美女偷拍久久| 国产精品麻豆久久久| 国产农村妇女毛片精品久久麻豆 | 国产日韩欧美精品一区| 欧美变态口味重另类| 日韩一级二级三级精品视频| 欧美在线观看视频在线| 色成年激情久久综合| 色综合 综合色| 色综合久久88色综合天天6| 北条麻妃一区二区三区| 国产在线一区观看| 国产一区二区精品久久| 国产综合色在线| 国产成人午夜精品影院观看视频| 国产主播一区二区三区| 国产在线视视频有精品| 国产999精品久久久久久绿帽| 国产ts人妖一区二区| www.亚洲色图| 99国产精品久久久久| 欧洲人成人精品| 51久久夜色精品国产麻豆| 欧美一区二区在线免费观看| 欧美一区二区三区在线电影| 欧美大度的电影原声| xnxx国产精品| 中文字幕日本不卡| 亚洲一级二级三级| 青青草国产成人av片免费| 激情六月婷婷久久| 成人h精品动漫一区二区三区| 99久久综合精品| 欧美三级视频在线| 日韩欧美国产综合| 中文一区一区三区高中清不卡| 亚洲欧美在线观看| 丝袜诱惑制服诱惑色一区在线观看| 青草国产精品久久久久久| 国产91对白在线观看九色| 99麻豆久久久国产精品免费| 欧美日韩1区2区| 欧美国产精品中文字幕| 亚洲一区二区偷拍精品| 国产在线国偷精品免费看| 91美女在线观看| 欧美成人一级视频| 国产精品久久久久久久久久久免费看| 亚洲综合精品自拍| 国产精品18久久久久久久久久久久 | 日韩电影一区二区三区四区| 韩国女主播成人在线观看| 一本色道a无线码一区v| 日韩欧美中文一区| 亚洲日本在线a| 久久精品久久综合| 欧美性感一区二区三区| 欧美激情一区二区三区在线| 午夜电影一区二区三区| 成人高清在线视频| 精品久久久久久久久久久久久久久久久|