標(biāo)題: 求答:關(guān)于單片機(jī)C語(yǔ)言編程問(wèn)題,把長(zhǎng)度為10H的字符串從內(nèi)部RAM的輸入緩沖區(qū)inbuf.... [打印本頁(yè)]

作者: 雨戀    時(shí)間: 2018-12-1 21:04
標(biāo)題: 求答:關(guān)于單片機(jī)C語(yǔ)言編程問(wèn)題,把長(zhǎng)度為10H的字符串從內(nèi)部RAM的輸入緩沖區(qū)inbuf....
把長(zhǎng)度為10H的字符串從內(nèi)部RAM的輸入緩沖區(qū)inbuf向位于外部RAM的輸出緩沖區(qū)outbuf傳送,一直進(jìn)行到遇見(jiàn)回車符CR或整個(gè)字符串傳送完畢。
這里面用C51語(yǔ)言怎么表示長(zhǎng)度10H,inbuf等等完全不知道怎么下手,請(qǐng)大佬給參考程序,讓我明白這類問(wèn)題該怎么編。

作者: HC6800-ES-V2.0    時(shí)間: 2018-12-2 08:46
給你一個(gè)程序片斷參考吧。
我的程序功能是從串口接收字符串,并判斷后,再發(fā)送相就的字符串。
先申明一個(gè)字符串unsigned char code PuZh1[] = "我的51單片機(jī)串口實(shí)驗(yàn)----發(fā)送字符串\r\n";
發(fā)送前先測(cè)長(zhǎng)度j=sizeof(PuZh1);
最后發(fā)送這個(gè)字符串
void Out_Data (unsigned char Data[])//發(fā)送字符串子函數(shù)
{
        unsigned char i;//字符串長(zhǎng)度計(jì)數(shù)變量
        for (i=0;i<j;i++)//
        {
                SBUF = Data[i];//將數(shù)據(jù)傳給緩存
                while (!TI);//等待數(shù)據(jù)傳送完畢
                TI = 0; //清發(fā)送完畢中斷標(biāo)志
        }
        k=0;
}
看到?jīng)]?變量j就是要發(fā)送的字符串長(zhǎng)度,用了一個(gè)不是函數(shù)是關(guān)鍵字的語(yǔ)句sizeof,這個(gè)用法也是在網(wǎng)上學(xué)到的。
作者: 雨戀    時(shí)間: 2018-12-2 16:52
HC6800-ES-V2.0 發(fā)表于 2018-12-2 08:46
給你一個(gè)程序片斷參考吧。
我的程序功能是從串口接收字符串,并判斷后,再發(fā)送相就的字符串。
先申明一個(gè) ...

真大佬,感謝




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