12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- #include <cstdarg>
- #include "mbed.h"
- #include "mbed/xprintf.h"
- #define STRING_STACK_LIMIT 120
- Serial ser(UART_TX, UART_RX);
- int xprintf(const char* format, ...)
- {
-
- std::va_list arg;
- va_start(arg, format);
- int len = vsnprintf(NULL, 0, format, arg);
- if (len < STRING_STACK_LIMIT) {
- char temp[STRING_STACK_LIMIT];
- vsprintf(temp, format, arg);
- ser.puts(temp);
- } else {
- char *temp = new char[len + 1];
- vsprintf(temp, format, arg);
- ser.puts(temp);
- delete[] temp;
- }
- va_end(arg);
- return len;
- }
|