標題: STC89C52單片機串口調試問題 [打印本頁]

作者: ZhOuU1    時間: 2021-1-27 11:54
標題: STC89C52單片機串口調試問題
如圖,一串同樣的字符,直接發(fā)送就可以在上位機正常顯示,將他放入數(shù)組后再發(fā)送就是一串亂碼,請問是什么原因呢

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

作者: ZhOuU1    時間: 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;
}


作者: ZhOuU1    時間: 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;

作者: ZhOuU1    時間: 2021-1-27 12:03
請各位大神幫忙看一看是哪里出了問題
作者: 人人學會單片機    時間: 2021-1-27 15:28
我在51hei上面的貼子 你用這個 STC單片機串口發(fā)送 不需要while死等 串口接收執(zhí)行軟件復位  
作者: ZhOuU1    時間: 2021-3-8 08:14
結果最后是不了了之了,第二天同樣的代碼再寫一次居然正常了,沒有找到原因,可能是啥地方寫錯了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1