91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?STM8串口打印調試信息

文章出處:單片機 責任編輯:上海現易電子元器件有限公司 發表時間:2018-05-20

API函數


static void uart1SendMsg(char msg[], uint16_t length)

{

       uint16_t i;


    for (i =0 ;i < length;i++)

    {

        UART1_SendData8(msg[i]);

        while(UART1_GetFlagStatus(UART1_FLAG_TC) == RESET);

    }

}

"`

void myPrintfAscii(char *msg)

{

    while((*msg) != '\0')

    {

        uart1SendMsg(msg, 1);

        msg++;

    }

}


void myPrintfInt8(uint8_t msg[], int length)

{

    char int2Ascii[64];

    uint16_t i, m, intLength;

    int n;

    long temp;


    for (i = 0;i < length;i++)

    {

        m = 0;

        temp = msg[i];

        while(m <= 64)

        {

            int2Ascii[m++] = temp % 10;

            temp /= 10;

            if (0 == temp)

            {

                break;

            }

        }

        intLength = m;

        for (n = intLength - 1;n >= 0;n--)

        {

            int2Ascii[n] += '0';

            uart1SendMsg(int2Ascii + n, 1);

        }

        myPrintfAscii(" ");

    }

}


void myPrintfInt16(uint16_t msg[], int length)

{

    char int2Ascii[64];

    uint16_t i, m, intLength;

    int n;

    long temp;


    for (i = 0;i < length;i++)

    {

        m = 0;

        temp = msg[i];

        while(m <= 64)

        {

            int2Ascii[m++] = temp % 10;

            temp /= 10;

            if (0 == temp)

            {

                break;

            }

        }

        intLength = m;

        for (n = intLength - 1;n >= 0;n--)

        {

            int2Ascii[n] += '0';

            uart1SendMsg(int2Ascii + n, 1);

        }


        myPrintfAscii("\r\n");

    }

}


void myPrintfInt32(uint32_t msg[], int length)

{

    char int2Ascii[64];

    uint16_t i, m, intLength;

    int n;

    long temp;


    for (i = 0;i < length;i++)

    {

        m = 0;

        temp = msg[i];

        while(m <= 64)

        {

            int2Ascii[m++] = temp % 10;

            temp /= 10;

            if (0 == temp)

            {

                break;

            }

        }

        intLength = m;

        for (n = intLength - 1;n >= 0;n--)

        {

            int2Ascii[n] += '0';

            uart1SendMsg(int2Ascii + n, 1);

        }

        myPrintfAscii(" ");

    }

}


上述方法相對笨一點,而且無法打印負數,浮點數。下面直接使用printf標準輸入輸出函數,將調試信息串口打印出來。


printf 函數重映射


使用printf函數將調試信息用串口打印出來,首先在有printf函數的C文件下包含 #include ,其次將printf函數重定向串口輸出1, 參考網址1。貼代碼:


重映射代碼,myPrintf.c


#include "stm8s.h"

#include

/*

 由于不同的編譯器 putcha 和 getchar 形參和返回值略有不同。

 因此此處采用宏定義的方式區別。

 _RAISONANCE_ 和 _COSMIC_ 這2個宏是由編譯器自動添加的預編譯宏

*/

#ifdef _RAISONANCE_

 #define PUTCHAR_PROTOTYPE int putchar (char c)

 #define GETCHAR_PROTOTYPE int getchar (void)

#elif defined (_COSMIC_)

 #define PUTCHAR_PROTOTYPE char putchar (char c)

 #define GETCHAR_PROTOTYPE char getchar (void)

#else /* _IAR_ */

 #define PUTCHAR_PROTOTYPE int putchar (int c)

 #define GETCHAR_PROTOTYPE int getchar (void)

#endif /* _RAISONANCE_ */



PUTCHAR_PROTOTYPE

{

 /* 發送一個字符 c 到UART1 */

 UART1_SendData8(c);

 /* 等待發送完畢 */

 while (UART1_GetFlagStatus(UART1_FLAG_TXE) == RESET);

 return (c);

}



GETCHAR_PROTOTYPE

{

 #ifdef _COSMIC_

  char c = 0;

 #else

  int c = 0;

 #endif

 /* 等待新數據到達  */

 while (UART1_GetFlagStatus(UART1_FLAG_RXNE) == RESET);

 /* 讀取數據寄存器 */

 c = UART1_ReceiveData8();

 return (c);

}


main.c 主要輸出部分:


#include

void main(void)

{       

    myUart1Init (115200);


    printf ("STM8S Start.\r\n");

    while(1)

    {   

    }


}


上海現易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 国产乡下三级全黄三级 | 国产又黄又刺激的免费A片小说 | 中文字幕高清免费日韩视频在线 | 精品国产一区二区三区不卡 | 色噜噜狠狠色综合久 | 国产精口品美女乱子伦高潮 | 亚洲AV国产成人精品区三上悠亚 | 四虎成人免费观看在线网址 | 手机在线观看黄色 | 泷川雅美的不雅视频 | 亚洲精品久久久久久中女字幕 | 日本不卡中文字幕 | 中文字幕在线观看你懂的 | 在线成本人视频动漫 www | 琪琪婷婷五月色综合久久 | 午夜在线免费观看视频 | a级毛片免费网站 | 人人模人人看 | 欧美极品少妇XXXOOO图片 | 亚洲三级天堂 | 亚洲天堂91 | 日本黄页免费 | 91欧美精品 | 在线视频一区二区三区三区不卡 | 总有一天在线完整免费观看 | 日韩AV无码一区二区三区不卡毛片 | 91情侣在线视频 | 伊人成人网| 久射久| 艺校水嫩漂亮得2美女 | 精品一卡2卡三卡4卡乱码免费 | 五月天婷婷精品免费视频 | 亚洲A片成人无码久久精品色欲 | 国产精品久久久久久一级毛片 | 久草在线新免久费观看视频 | 久久久久久久性 | 成都影院免费高清完整 | 久久这里的只有是精品23 | 亚洲小说欧美另类激情 | 爱综合网 | 日韩三级一区二区 |