找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2703|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

STC89C52單片機(jī)串口調(diào)試問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
如圖,一串同樣的字符,直接發(fā)送就可以在上位機(jī)正常顯示,將他放入數(shù)組后再發(fā)送就是一串亂碼,請(qǐng)問是什么原因呢

QUC3FHB$BM4PW_3X}N0DR47.png (99.55 KB, 下載次數(shù): 92)

QUC3FHB$BM4PW_3X}N0DR47.png

8~0~VN5H_LKTMR1_`PF664O.png (49.34 KB, 下載次數(shù): 121)

8~0~VN5H_LKTMR1_`PF664O.png
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:538487 發(fā)表于 2021-1-27 11:56 | 只看該作者
串口部分代碼
#include "uart.h"

void uart_init(void)
{
        TMOD|=0X20;//設(shè)置T1工作方式為8位自動(dòng)重裝
    SCON=0X50;//設(shè)置串口工作方式為10位異步收發(fā)器
    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;
}

回復(fù)

使用道具 舉報(bào)

板凳
ID:538487 發(fā)表于 2021-1-27 12:02 | 只看該作者
數(shù)據(jù)類型的重定義:
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;
回復(fù)

使用道具 舉報(bào)

地板
ID:538487 發(fā)表于 2021-1-27 12:03 | 只看該作者
請(qǐng)各位大神幫忙看一看是哪里出了問題
回復(fù)

使用道具 舉報(bào)

5#
ID:390416 發(fā)表于 2021-1-27 15:28 | 只看該作者
我在51hei上面的貼子 你用這個(gè) STC單片機(jī)串口發(fā)送 不需要while死等 串口接收?qǐng)?zhí)行軟件復(fù)位  
回復(fù)

使用道具 舉報(bào)

6#
ID:538487 發(fā)表于 2021-3-8 08:14 | 只看該作者
結(jié)果最后是不了了之了,第二天同樣的代碼再寫一次居然正常了,沒有找到原因,可能是啥地方寫錯(cuò)了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表