Я хочу написать быструю printf()
своего рода функцию для встроенной платы, над которой я работаю, где выходной терминал является последовательным портом.Я попробовал что-то вроде этого:
int32_t printfDebugSerial(const char *format, ...)
{
char tempBuff[256];
memset(tempBuff, 0, sizeof tempBuff);
va_list arg;
int32_t done;
va_start (arg, format);
done = (int32_t)sprintf(tempBuff,format, arg);
va_end (arg);
HAL_sendToSerial((uint8_t*)tempBuff, strlen(tempBuff)); // writes bytes to serial port
return done;
}
Но вывод, который я получил, когда я назвал его следующим образом:
printfDebugSerial("Hello = %u", 1234);
вывод:
Hello = 536929228
затем вызвалкак:
printfDebugSerial("Hello = %f", 934.3245);
вывод:
Hello = 0.000000
Любая помощь, что здесь не так?