Strange behavior from uint32_t, acting like signed int (Nano clone)
%d expects a signed int. %u expects an unsigned int. Insert the l modifier to expect a long in each of those cases. So you need a format code of %lu to print a uint32_t.
The following code:
#include &lt;Arduino.h&gt;

void setup()
{
    uint32_t x=110000;
    char buf[50];

   // Open console
   Serial.begin(115200);
   
    sprintf(buf, &quot;%%d: %d\n&quot;, x);       Serial.print(buf);
    sprintf(buf, &quot;%%u: %u\n&quot;, x);       Serial.print(buf);
    sprintf(buf, &quot;%%ld: %ld\n&quot;, x); Serial.print(buf);
    sprintf(buf, &quot;%%lu: %lu\n&quot;, x); Serial.print(buf);
}


void loop() {
   ;
}

prints this:
%d: -21072
%u: 44464
%ld: 110000
%lu: 110000