找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

STC89C52單片機串口調試問題

查看數(shù): 2684 | 評論數(shù): 5 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發(fā)布時間: 2021-1-27 11:54

正文摘要:

如圖,一串同樣的字符,直接發(fā)送就可以在上位機正常顯示,將他放入數(shù)組后再發(fā)送就是一串亂碼,請問是什么原因呢

回復

ID:538487 發(fā)表于 2021-3-8 08:14
結果最后是不了了之了,第二天同樣的代碼再寫一次居然正常了,沒有找到原因,可能是啥地方寫錯了
ID:390416 發(fā)表于 2021-1-27 15:28
我在51hei上面的貼子 你用這個 STC單片機串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復位  
ID:538487 發(fā)表于 2021-1-27 12:03
請各位大神幫忙看一看是哪里出了問題
ID:538487 發(fā)表于 2021-1-27 12:02
數(shù)據類型的重定義:
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 發(fā)表于 2021-1-27 11:56
串口部分代碼
#include "uart.h"

void uart_init(void)
{
        TMOD|=0X20;//設置T1工作方式為8位自動重裝
    SCON=0X50;//設置串口工作方式為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;
}

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表