找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3695|回复: 4
收起左侧

请问如何用串口调试助手接收串口发送数据呢?串口调试助手显示的结果很奇怪,求指点

[复制链接]
ID:796670 发表于 2020-12-7 21:10 | 显示全部楼层 |阅读模式
1.PNG
把要传送的数据给SBUF,但串口调试助手显示的结果很奇怪:

这是我写的程序:

#include <reg52.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <intrins.h>
#define uchar unsigned char
#define uint  unsigned int
        
void delay(uint z)//延时函数
{
        uint x,y;
        for(x=z;x>0;x--);
                for(y=110;y>0;y--);
}

void init()  //系统初始化
{
TMOD |=0X20;//定时器T1,方式2,波特率由PCON寄存器的SMOD决定
SCON=0x50; //REN RI TI,RI为0,TI为0
//串行口1方式1 SCON是串行口1的串行控制寄存器,REN为1,允许接收
PCON=0x00;//各工作方式波特率加倍
TH1=0xfD;//9600bps@11.0592
TL1=0xfD;
TR1=1; //定时器1中断打开
EA=1;//cpu总中断允许位,1为开放中断
ES=1;// 1允许串行口中断
}

void main()
{
        init();
  while(1)
        {
               
                SBUF=22;   //比如把22这个数据传给SBUF
                        while(TI==0);
      {
                                         }                        //数据发送结束时TI自动置1
                        TI=0;
                        
                }
        }


void UART_1() interrupt 4
{
        //接收完缓冲数据后RI置1
        if(RI)//如果RI为1,即如果收到
        {
                RI=0; //RI置0
        }
}

请问程序哪里不对呢?应该如何修改呢?谢谢大家
回复

使用道具 举报

ID:592807 发表于 2020-12-8 08:31 | 显示全部楼层
串口通信应该是一样的,你选择文本显示试试。
51hei截图20201208082815.png

XCOM V2.0.rar

215.94 KB, 下载次数: 6

回复

使用道具 举报

ID:406879 发表于 2020-12-8 08:51 | 显示全部楼层
别用hex模式。。最好先用文本,,等熟悉了才hex
回复

使用道具 举报

ID:517466 发表于 2020-12-8 13:11 | 显示全部楼层
以下是我自己的程序中使用的串口输出代码,已经实际测过,是OK的:
主函数中初始化串口:
        // 初始化串口
        SCON=0x50;
        TMOD|=0x20;
        TH1=TL1=0xFD;
        TR1=1;
       


// 串口输出函数:输出一个字符       
void comchar(uchar dat) {
    SBUF=dat;
        while(!TI);
        TI=0;
}       

// 串口输出函数:输出一个字符串
void comstr(uchar *dat) {
        uchar i=0;
        uchar temp;
        while(temp=dat[i++]) {
            comchar(temp);
        }
}

        // 需要串口输出的时候调用函数
        // 串口输出字符
        comchar('A');
        // 串口输出字符串
        comstr("this is test.");
回复

使用道具 举报

ID:866258 发表于 2021-1-8 17:50 | 显示全部楼层
应该是以数组为空作为结束判断条件
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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