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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2504|回復: 4
收起左側

能不能幫我看看為什么數據后接收不到?

[復制鏈接]
ID:955868 發表于 2021-9-23 16:44 | 顯示全部樓層 |閱讀模式
  1. #include "reg52.h"

  2. void ConfigUART(unsigned int baud);

  3. void main()
  4. {
  5.     EA = 1;
  6.     ConfigUART(9600);
  7.     while(1);
  8. }

  9. void ConfigUART(unsigned int baud)
  10. {
  11.     SCON = 0x50;//配置為模式1
  12.     TMOD &= 0xf0;
  13.     TMOD |= 0x20;
  14.     TH1 = 256 - (11059200/12/32)/baud;
  15.     TL1 = TH1;
  16.     ET1 = 0;//利用T1中斷來進行接收(發送)完成的中斷,所以要禁用T1的計時器中斷
  17.     TR1 = 1;
  18. }

  19. void InterruptUART() interrupt 4
  20. {
  21.     if(RI)
  22.    {
  23.       RI = 0;
  24.       SBUF = SBUF + 1;//將接收的數據+1再發回去
  25.    }       
  26.     if(TI)
  27.    {
  28.       TI = 0;
  29.    }
  30. }
復制代碼


屏幕截圖 2021-09-23 164334.png
回復

使用道具 舉報

ID:624769 發表于 2021-9-23 17:34 | 顯示全部樓層
ES = 1   呢????
回復

使用道具 舉報

ID:161164 發表于 2021-9-23 17:46 | 顯示全部樓層
  1. #include "reg52.h"

  2. void ConfigUART(unsigned int baud);
  3. unsigned char TBUF;
  4. void main()
  5. {
  6.     EA = 1;
  7.     ConfigUART(9600);
  8.     while(1)
  9.                 {
  10.                         if(TBUF)//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  11.                         {
  12.                                 SBUF = TBUF;
  13.                                 TBUF = 0;
  14.                         }
  15.                 }
  16. }

  17. void ConfigUART(unsigned int baud)
  18. {
  19.     SCON = 0x50;//配置為模式1
  20.     TMOD &= 0x0F;//錯1<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  21.     TMOD |= 0x20;
  22.     TH1 = 256 - (11059200/12/32)/baud;
  23.     TL1 = TH1;
  24.     ET1 = 0;//利用T1中斷來進行接收(發送)完成的中斷,所以要禁用T1的計時器中斷
  25.     TR1 = 1;
  26.     ES = 1;//錯2<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  27. }

  28. void InterruptUART() interrupt 4
  29. {
  30.     if(RI)
  31.    {
  32.       RI = 0;
  33.       TBUF = SBUF + 1;//將接收的數據+1再發回去//錯3<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
  34.    }      
  35.     if(TI)
  36.    {
  37.       TI = 0;
  38.    }
  39. }
復制代碼
錯1:不是TMOD &= 0xF0;
錯2:沒有開啟串口中斷
錯3:最好不要在串口中斷中對SBUF賦值
回復

使用道具 舉報

ID:514901 發表于 2021-9-24 09:04 | 顯示全部樓層
EA = ES = 1;
回復

使用道具 舉報

ID:968007 發表于 2021-9-24 17:19 | 顯示全部樓層
你要加上EAES都等于1
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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