标题: 请问如何用串口调试助手接收串口发送数据呢?串口调试助手显示的结果很奇怪,求指点 [打印本页]

作者: 明日香    时间: 2020-12-7 21:10
标题: 请问如何用串口调试助手接收串口发送数据呢?串口调试助手显示的结果很奇怪,求指点

把要传送的数据给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
        }
}

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

作者: 黄youhui    时间: 2020-12-8 08:31
串口通信应该是一样的,你选择文本显示试试。

51hei截图20201208082815.png (28.18 KB, 下载次数: 127)

51hei截图20201208082815.png

XCOM V2.0.rar

215.94 KB, 下载次数: 6


作者: 回忆不堪回首    时间: 2020-12-8 08:51
别用hex模式。。最好先用文本,,等熟悉了才hex

作者: suncat0504    时间: 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.");

作者: 飘零111    时间: 2021-1-8 17:50
应该是以数组为空作为结束判断条件




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1