欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 1750|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

2051單片機(jī)+485通訊+PELCO-D協(xié)議 數(shù)據(jù)傳輸殘缺

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:735148 發(fā)表于 2020-5-9 14:34 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. /************************************
  2.                         UART串口中斷
  3. ************************************/
  4. void UART_Interrupt (void) interrupt  4
  5. {
  6.         if(RI)  //接收字節(jié)
  7.         {
  8.                 RI = 0;
  9.                 if(datebuf_i<sizeof(DateBuf))  //DateBuf是用來存儲(chǔ)接收到的信息的數(shù)組。長度可隨協(xié)議手動(dòng)更改
  10.                 {
  11.                         DateBuf[ datebuf_i++ ] =SBUF; //將接收緩沖區(qū)的信息按位寫入到數(shù)組中
  12.                 }
  13.                

  14.                 DelayXs(2);
  15.         }
  16.         if(TI)
  17.         {

  18.                 TI = 0;
  19.         }

  20. }
復(fù)制代碼
這是中斷接收部分的代碼。已經(jīng)確定和排除的是波特率沒有問題。硬件系統(tǒng)沒有問題。
  1. unsigned char  Date_TF(unsigned char * buf)
  2. {
  3.         int a;
  4.         u8 a1;
  5.         u8 b;
  6.         u8 i=0 ;
  7.         u8 date_tf;
  8.         if(buf[0] ==0xff)
  9.         {
  10.                 if(buf[1] == 0x01)
  11.                 {
  12.                         if(buf[2] == 0x00)
  13.                         {
  14.                                 
  15.                                 if(buf[3] == 0x00)
  16.                                 {
  17.                                         if(buf[4] == 0x00)
  18.                                         {
  19.                                                 if(buf[5] == 0x00)
  20.                                                 {
  21.                                                         if(buf[6] == 0x00)
  22.                                                         {
  23.                                                                 relay_zheng();
  24.                                                         }                                                        
  25.                                                 }                                       
  26.                                         }
  27.                                 }
  28.                         }
  29.                         
  30. //                        b = buf[6];
  31. //                        
  32. //                        for( i=1;i<5;i++ )
  33. //                        {
  34. //                                a1=buf[i];
  35. //                                a +=a1;
  36. //                        }               
  37. //                        if(a == b)
  38. //                        {        
  39. //                                tf = 1;
  40. //                                relay_stop();//測(cè)試
  41. //                        }
  42.                 }
  43.         }
  44.         return date_tf;
  45. }
復(fù)制代碼
這是發(fā)現(xiàn)問題后一步步檢測(cè)出來的接收到的信息。只有前兩個(gè)是正確的。后面的都是錯(cuò)誤的。
另外,再中斷接收函數(shù)中,必須放延時(shí)函數(shù),要不然就什么都接收不到?

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表