新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 單片機(jī)使用printf函數(shù)進(jìn)行串口打印輸出

        單片機(jī)使用printf函數(shù)進(jìn)行串口打印輸出

        作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
        以前在使用keil編寫51單片機(jī)程序的時候,經(jīng)常使用printf函數(shù)打印輸出一些關(guān)鍵的過程數(shù)據(jù)到電腦,方便監(jiān)控程序的運(yùn)行狀況。最近使用IAR for MSP430 調(diào)試 MSP430G2553 程序的時候,發(fā)現(xiàn)了一些小問題,MSP430G2553單片機(jī)并沒有按照我的預(yù)期輸出數(shù)據(jù)到電腦。

        帶著疑惑我查看了keil的幫助文件里面的printf函數(shù)說明,原來printf函數(shù)最終是調(diào)用putchar函數(shù)來實現(xiàn)打印輸出字符的。

        本文引用地址:http://www.104case.com/article/201611/321832.htm

        putchar,該函數(shù)將制定的表達(dá)式的值所對應(yīng)的字符輸出到標(biāo)準(zhǔn)輸出終端上。表達(dá)式可以是字符型或整型,它每次只能輸出一個字符。我們來看keil標(biāo)準(zhǔn)函數(shù)庫里的putchar函數(shù)的函數(shù)體。

        根據(jù)說明提示,我在D:KeilC51LIB文件夾里面找到了putchar.c文件

        #include

        #define XON 0x11

        #define XOFF 0x13

        char putchar (char c) {

        if (c == ) {

        if (RI) {

        if (SBUF == XOFF) {

        do {

        RI = 0;

        while (!RI);

        }

        while (SBUF != XON);

        RI = 0;

        }

        }

        while (!TI);

        TI = 0;

        SBUF = 0x0d;

        }

        if (RI) {

        if (SBUF == XOFF) {

        do {

        RI = 0;

        while (!RI);

        }

        while (SBUF != XON);

        RI = 0;

        }

        }

        while (!TI);

        TI = 0;

        return (SBUF = c);

        }

        #if 0 // comment out versions below

        char putchar (char c) {

        if (c == ) {

        while (!TI);

        TI = 0;

        SBUF = 0x0d;

        }

        while (!TI);

        TI = 0;

        return (SBUF = c);

        }

        char putchar (char c) {

        while (!TI);

        TI = 0;

        return (SBUF = c);

        }

        #endif


        上一頁 1 2 下一頁

        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 泗洪县| 靖江市| 积石山| 南华县| 迁安市| 东山县| 长岭县| 泸西县| 清河县| 西安市| 汉中市| 义乌市| 吉木乃县| 西林县| 甘谷县| 高台县| 西乌| 赤峰市| 桂林市| 池州市| 莱阳市| 建平县| 张北县| 张掖市| 兴化市| 策勒县| 信阳市| 乌兰浩特市| 乌苏市| 兖州市| 英吉沙县| 广东省| 阿拉善左旗| 册亨县| 盘锦市| 桐柏县| 封开县| 吉木萨尔县| 三河市| 乌拉特后旗| 烟台市|