找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1861|回复: 5
收起左侧

STC89C52单片机串口调试问题

[复制链接]
ID:538487 发表于 2021-1-27 11:54 | 显示全部楼层 |阅读模式
如图,一串同样的字符,直接发送就可以在上位机正常显示,将他放入数组后再发送就是一串乱码,请问是什么原因呢
QUC3FHB$BM4PW_3X}N0DR47.png
8~0~VN5H_LKTMR1_`PF664O.png
回复

使用道具 举报

ID:538487 发表于 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;
}

回复

使用道具 举报

ID:538487 发表于 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;
回复

使用道具 举报

ID:538487 发表于 2021-1-27 12:03 | 显示全部楼层
请各位大神帮忙看一看是哪里出了问题
回复

使用道具 举报

ID:390416 发表于 2021-1-27 15:28 | 显示全部楼层
我在51hei上面的贴子 你用这个 STC单片机串口发送 不需要while死等 串口接收执行软件复位  
回复

使用道具 举报

ID:538487 发表于 2021-3-8 08:14 | 显示全部楼层
结果最后是不了了之了,第二天同样的代码再写一次居然正常了,没有找到原因,可能是啥地方写错了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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