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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機串口字符串重復(fù)發(fā)送問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1013010 發(fā)表于 2022-3-27 21:33 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
本意是想串口發(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采用定時方式2  
        TH1=TL1=0xfd;//9600b/s
        PCON=0;    //波特率不加倍
        TR1=1;
}


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


//串口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);
}






分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:121859 發(fā)表于 2022-3-28 05:09 | 只看該作者
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當于重來,如此反復(fù)。
回復(fù)

使用道具 舉報

板凳
ID:123289 發(fā)表于 2022-3-28 10:57 | 只看該作者
main程序結(jié)束后,程序運行到什么地方呢?
這一點,由編譯平臺決定,它的決定是,再回到MAIN!
沙發(fā)的方法是,讓程序陷在while(1)里,出不去,所以就不會再回到MAIN了。
回復(fù)

使用道具 舉報

地板
ID:1006852 發(fā)表于 2022-3-28 10:58 | 只看該作者
你的主程序是,分4個部分,初始化,延時,發(fā)送,延時,完成了以后重新開始了。你要想好程序何時執(zhí)行,執(zhí)行完成以后如何處理。再來寫對應(yīng)功能代碼。
回復(fù)

使用道具 舉報

5#
ID:1013010 發(fā)表于 2022-3-28 11:19 | 只看該作者
zhxiufan 發(fā)表于 2022-3-28 05:09
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當于重來,如此反復(fù)。

感謝您的熱心解答!
回復(fù)

使用道具 舉報

6#
ID:1013010 發(fā)表于 2022-3-28 11:19 | 只看該作者
yzwzfyz 發(fā)表于 2022-3-28 10:57
main程序結(jié)束后,程序運行到什么地方呢?
這一點,由編譯平臺決定,它的決定是,再回到MAIN!
沙發(fā)的方法 ...

感謝您的熱心解答!
回復(fù)

使用道具 舉報

7#
ID:1013010 發(fā)表于 2022-3-28 11:20 | 只看該作者
percy 發(fā)表于 2022-3-28 10:58
你的主程序是,分4個部分,初始化,延時,發(fā)送,延時,完成了以后重新開始了。你要想好程序何時執(zhí)行,執(zhí)行 ...

感謝您的熱心解答!
回復(fù)

使用道具 舉報

8#
ID:1091909 發(fā)表于 2023-8-24 20:57 | 只看該作者
zhxiufan 發(fā)表于 2022-3-28 05:09
程序的尾部加一行語句while(1);就可以了,你的程序跑飛了,每執(zhí)行一次就復(fù)位了,相當于重來,如此反復(fù)。

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

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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