stm32 串口格式化打印字符串 函数封装

2019-07-16  本文已影响0人  EndlessCodeBug

#include <iostream>

#include <windows.h>

//**********************************************

#include <stdarg.h>

#include <stdio.h>

int uart_printf(void* UartHandle,char* buf,size_t bufLen, const char *fmt, ...)

{

    va_list arg;

    int cnt;

#if 1

    va_start(arg, fmt);

    cnt = vsnprintf(buf, bufLen, fmt, arg);

//生成的字符串的长度至多为n-1,为额外的终止空字符留下空间。

    va_end(arg);

#else

    va_start(arg, fmt);

    cnt = vsprintf(buf, fmt, arg);

    va_end(arg);

#endif

    printf("%s", buf);  //UART0_SendBuf(buffer);

    return cnt;

}

//**********************************************

int main()

{

    std::cout << "Hello World!\n"; 

#define BUF_LEN   3

    char Buf[BUF_LEN] = { 0 };

    int Res = 0;

    Res=uart_printf(NULL,Buf, BUF_LEN, "A=%d\r\n", 1);

    std::cout <<'['<< Buf <<']'<< std::endl;

    printf("[%s]Res==%d\r\n\r\n", Buf,Res);

    printf("\r\n\r\n");

    system("pause");

}

---------------------

上一篇 下一篇

猜你喜欢

热点阅读