标题: STC89C52单片机串口调试问题 [打印本页]

作者: ZhOuU1    时间: 2021-1-27 11:54
标题: STC89C52单片机串口调试问题
如图,一串同样的字符,直接发送就可以在上位机正常显示,将他放入数组后再发送就是一串乱码,请问是什么原因呢

QUC3FHB$BM4PW_3X}N0DR47.png (99.55 KB, 下载次数: 92)

QUC3FHB$BM4PW_3X}N0DR47.png

8~0~VN5H_LKTMR1_`PF664O.png (49.34 KB, 下载次数: 121)

8~0~VN5H_LKTMR1_`PF664O.png

作者: ZhOuU1    时间: 2021-1-27 11:56
串口部分代码
#include "uart.h"

void uart_init(void)
{
        TMOD|=0X20;//设置T1工作方式为8位自动重装
    SCON=0X50;//设置串口工作方式为10位异步收发器
    PCON|=0X80;//SMOD置为1
        TH1=0xF3;
        TL1=0XF3;
        TR1=1;
        TI=0;
        RI=0;       
//        EA=1;//开放总中断
//    ES=1;//开放串口中断
}

void send_byte(uint8 str)
{
        SBUF=str;
        while(TI==0);
        TI=0;
}

void send_str(uint8* str)
{
        ES=0;
        while((*str)!='\0')
        {
                SBUF=*str;
                while(TI==0);
                TI=0;
                str++;
        }
        ES=1;
}


作者: ZhOuU1    时间: 2021-1-27 12:02
数据类型的重定义:
typedef char int8;
typedef unsigned char  uint8;
typedef short int int16;
typedef unsigned short int   uint16;
typedef long int int32;
typedef unsigned long int uint32;

作者: ZhOuU1    时间: 2021-1-27 12:03
请各位大神帮忙看一看是哪里出了问题
作者: 人人学会单片机    时间: 2021-1-27 15:28
我在51hei上面的贴子 你用这个 STC单片机串口发送 不需要while死等 串口接收执行软件复位  
作者: ZhOuU1    时间: 2021-3-8 08:14
结果最后是不了了之了,第二天同样的代码再写一次居然正常了,没有找到原因,可能是啥地方写错了




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