欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標(biāo)題: 單片機(jī)串口字符串重復(fù)發(fā)送問題 [打印本頁]

作者: Kormin    時(shí)間: 2022-3-27 21:33
標(biāo)題: 單片機(jī)串口字符串重復(fù)發(fā)送問題
本意是想串口發(fā)送一次字符串,但是卻一直重復(fù)發(fā)送了。

程序代碼如下:
#include<stc12c5a60s2.h>
#include<stdio.h>

#define uchar unsigned char
#define uint  unsigned int


void delay_ms(uint x)
{        uint j;
        for(;x>0;x--)
                for(j=125;j>0;j--);
}


void uart_init() //串口初始化
{        
        SCON=0x50; //串口方式1
        TMOD=0x20; //T1采用定時(shí)方式2  
        TH1=TL1=0xfd;//9600b/s
        PCON=0;    //波特率不加倍
        TR1=1;
}


void uart1_send_byte(uchar byte)
{
        SBUF = byte;
        while(!TI); //等待發(fā)送完成
        TI=0; //清TI標(biāo)志位
}


//串口1 發(fā)送 字符串
void uart1_send_string(uchar *str)
{
        while(*str!='\0')
        {
                uart1_send_byte(*str++);
        }
}


void main()
{
        uart_init();
        delay_ms(100);
        uart1_send_string("yes,you can!\r\n");
        delay_ms(500);
}







作者: zhxiufan    時(shí)間: 2022-3-28 05:09
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當(dāng)于重來,如此反復(fù)。
作者: yzwzfyz    時(shí)間: 2022-3-28 10:57
main程序結(jié)束后,程序運(yùn)行到什么地方呢?
這一點(diǎn),由編譯平臺決定,它的決定是,再回到MAIN!
沙發(fā)的方法是,讓程序陷在while(1)里,出不去,所以就不會再回到MAIN了。
作者: percy    時(shí)間: 2022-3-28 10:58
你的主程序是,分4個(gè)部分,初始化,延時(shí),發(fā)送,延時(shí),完成了以后重新開始了。你要想好程序何時(shí)執(zhí)行,執(zhí)行完成以后如何處理。再來寫對應(yīng)功能代碼。
作者: Kormin    時(shí)間: 2022-3-28 11:19
zhxiufan 發(fā)表于 2022-3-28 05:09
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當(dāng)于重來,如此反復(fù)。

感謝您的熱心解答!
作者: Kormin    時(shí)間: 2022-3-28 11:19
yzwzfyz 發(fā)表于 2022-3-28 10:57
main程序結(jié)束后,程序運(yùn)行到什么地方呢?
這一點(diǎn),由編譯平臺決定,它的決定是,再回到MAIN!
沙發(fā)的方法 ...

感謝您的熱心解答!
作者: Kormin    時(shí)間: 2022-3-28 11:20
percy 發(fā)表于 2022-3-28 10:58
你的主程序是,分4個(gè)部分,初始化,延時(shí),發(fā)送,延時(shí),完成了以后重新開始了。你要想好程序何時(shí)執(zhí)行,執(zhí)行 ...

感謝您的熱心解答!
作者: Yoona_Ssl    時(shí)間: 2023-8-24 20:57
zhxiufan 發(fā)表于 2022-3-28 05:09
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當(dāng)于重來,如此反復(fù)。

大佬,為啥我加while(1)之前,和樓主一樣的問題,加了之后,計(jì)算機(jī)直接收不到單片機(jī)發(fā)送的內(nèi)容了




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