找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

能不能帮我看看为什么数据后接收不到?

查看数: 2123 | 评论数: 4 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2021-9-23 16:44

正文摘要:

#include "reg52.h" void ConfigUART(unsigned int baud); void main() {     EA = 1;     ConfigUART(9600);     while(1); } void ConfigUART(unsigned int baud) {   ...

回复

ID:968007 发表于 2021-9-24 17:19
你要加上EAES都等于1
ID:514901 发表于 2021-9-24 09:04
EA = 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:624769 发表于 2021-9-23 17:34
ES = 1   呢????

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表