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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5708|回復: 6
收起左側(cè)

串口通過485發(fā)送數(shù)據(jù)接收到的數(shù)據(jù)不是發(fā)出的數(shù)據(jù)是什么問題

[復制鏈接]
搶樓 搶樓 本帖為搶樓帖,歡迎搶樓! 
ID:418482 發(fā)表于 2018-11-9 16:39 | 顯示全部樓層 |閱讀模式
6黑幣

4851.png
4852.png
回復

使用道具 舉報

ID:418482 發(fā)表于 2018-11-10 10:52 | 顯示全部樓層
d j.png
  1. #include <stc12c5a60s2.h>
  2. #include<intrins.h>

  3. sbit RE=P1^1;
  4. sbit DE=P1^0;
  5.                
  6. bit SendFlag;
  7. unsigned int ReData,SenData;

  8. void configuart(unsigned int baud);

  9. /**************************************
  10.             延時程序
  11. **************************************/
  12. void delay10us(unsigned char t)
  13. {
  14.    do{
  15.       _nop_();
  16.           _nop_();
  17.           _nop_();
  18.           _nop_();
  19.           _nop_();
  20.           _nop_();
  21.           _nop_();
  22.           _nop_();
  23.           _nop_();

  24.    }while(--t);
  25. }


  26. void main ()
  27. {
  28.         EA=1;
  29.                 configuart(9600);   
  30.         while(1)
  31.     {
  32.        
  33.           if (SendFlag==1)   
  34.              {   
  35.                DE=1;           //                             
  36.               SBUF=SenData;           //發(fā)送數(shù)據(jù)
  37.                   delay10us(5);
  38.                   //RE=0;
  39.        }
  40.          else
  41.           {

  42.               RE=0;              //接收狀態(tài)
  43.           }

  44.      }

  45. }
  46. void configuart(unsigned int baud)
  47. {
  48.         //RE=0;
  49.         SCON = 0x50;                                 
  50.             TMOD&=0X0F;
  51.                 TMOD|=0X20;
  52.                 TH1=256-(22118400/12/32)/baud;
  53.                 TL1=TH1;
  54.                
  55.                 ET1=0;
  56.                 ES=1;
  57.                 TR1=1;
  58. }

  59. /****************************************************
  60.                串口中斷程序
  61. ******************************************************/
  62. void ser_int (void) interrupt 4
  63. {
  64. if(TI == 1)
  65. {
  66.         TI = 0;
  67.         SendFlag = 0;
  68. }

  69. if(RI == 1)        //RI接受中斷標志
  70. {
  71.         RI = 0;                    //清除RI接受中斷標志
  72.         ReData = SBUF;  //SUBF接受/發(fā)送緩沖器
  73.         SenData=ReData;
  74.         SendFlag = 1;
  75.    
  76. }
  77. }
復制代碼

代碼是發(fā)送什么就接收什么  為什么 串口助手接收的數(shù)據(jù)不對勒
回復

使用道具 舉報

ID:94031 發(fā)表于 2018-11-10 11:31 | 顯示全部樓層
a超人 發(fā)表于 2018-11-10 10:52
代碼是發(fā)送什么就接收什么  為什么 串口助手接收的數(shù)據(jù)不對勒

設斷點查,先看接收對不對。
回復

使用道具 舉報

ID:123289 發(fā)表于 2018-11-10 17:00 | 顯示全部樓層
如果收發(fā)的頻率不一致,會發(fā)生此現(xiàn)象。
回復

使用道具 舉報

ID:422661 發(fā)表于 2018-11-17 12:21 | 顯示全部樓層
單片機通過485通信, 屬于準雙向通訊,在接收時不能發(fā)送,上位機與下位機通訊,
一般為 上位機 發(fā)送 指令 或者 數(shù)據(jù),下位機接收完成后 判斷 是指令還是數(shù)據(jù),
并返回 執(zhí)行狀態(tài) 和 數(shù)據(jù)。
就是 有接收完成 后 馬上 返回數(shù)據(jù) 給 上位機。即 上位機與下位機的收發(fā)協(xié)議。
如果 隨意發(fā)送數(shù)據(jù),那肯定會亂套了。
回復

使用道具 舉報

ID:428180 發(fā)表于 2018-11-17 14:07 | 顯示全部樓層
通過485通信, 屬于準雙向通訊,在接收時不能發(fā)送,上位機與下位機通訊,
一般為 上位機 發(fā)送 指令 或者 數(shù)據(jù),下位機接收完成后 判斷 是指令還是數(shù)據(jù),
并返回 執(zhí)行狀態(tài) 和 數(shù)據(jù)。
回復

使用道具 舉報

ID:911776 發(fā)表于 2021-5-14 09:43 | 顯示全部樓層
后來怎么解決的?我也遇到這個問題了。
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表