找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2264|回复: 6
收起左侧

串口通信问题

[复制链接]
ID:75909 发表于 2015-10-22 20:47 | 显示全部楼层 |阅读模式
做郭天祥串口通信实验,在上位机用串口调试助手发送1个字符X,单片机收到字符返回给上位机“I get x”为什么我发送任意字符,都只是得到I get,而没有X呢
回复

使用道具 举报

ID:69679 发表于 2015-10-22 21:15 | 显示全部楼层
程序贴出来,大家才能给你查看原因
回复

使用道具 举报

ID:75909 发表于 2015-10-23 12:26 | 显示全部楼层
#include<reg51.h>
#define uchar unsigned char
#define uint   unsigned int
uchar flag,a,i;
uchar code table[]="I get";
void init()
{
        SCON=0X50;                        //设置为工作方式1
        TMOD=0X20;                        //设置计数器工作方式2
        PCON=0X80;                        //波特率加倍
        TH1=0XF3;                                //计数器初始值设置,注意波特率是4800的
        TL1=0XF3;
        ES=1;                                                //打开接收中断
        EA=1;                                                //打开总中断
        TR1=1;                                        //打开计数器
}
                                               


void main()
{
        init();
        while(1)
                 {
                   if(flag==1)
                           {
                           flag=0;
                           ES=0;
                           for(i=0;i<6;i++)
                                     {
                                            SBUF=table[i];
                                            while(!TI);
                                            TI=0;
                                  
                                   }
                                     SBUF=a;
                                     while(!TI);
                                     TI=0;
                                     ES=1;
                                   flag=0;
                          }
                 
                 }
                 
                 
}

void ser()interrupt 4
{
  RI=0;
  a=SBUF;
  flag=1;
}
回复

使用道具 举报

ID:75909 发表于 2015-10-23 18:43 | 显示全部楼层
没人帮助一下吗
回复

使用道具 举报

ID:75909 发表于 2015-10-23 18:43 | 显示全部楼层
菜鸟积极求助
回复

使用道具 举报

ID:95133 发表于 2015-11-9 10:18 | 显示全部楼层
for(i=0;i<6;i++)
                                      {
                                             SBUF=table[i];
                                             while(!TI);
                                             TI=0;
                                    
                                    }把这段去掉、
回复

使用道具 举报

ID:95133 发表于 2015-11-9 10:56 | 显示全部楼层
                                    for(i=0;i<6;i++)
                                       {
                                              SBUF=table[i];
                                              while(!TI);
                                              TI=0;
                                    
                                     }把i<6改为i<5
  之前看错标题了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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