cancel
Showing results for 
Search instead for 
Did you mean: 

Is sprintf() supposed to support uint64_t numbers?

KiptonM
Lead

This compiles with no warnings or errors:

 char buf[256];

uint64_t bignum = 0x123456789;

sprintf(buf,"bignum: 0x%016llx, %llu\r\n",bignum,bignum);

HAL_UART_Transmit_DMA(&huart1,(uint8_t *)buf, strlen(buf));

This comes out the terminal:

bignum: 0x000000000000000lx, lu

%I64d does not compile.

1 ACCEPTED SOLUTION

Accepted Solutions
5 REPLIES 5
Uwe Bonnes
Principal III

It depends on the libc used.

KiptonM
Lead

Thanks

How do I change the libc in STM32CubeIDE?

And which one should I use?

Where can I find the documentation?

KiptonM
Lead

googling STM32 libc does not get me anything.

Select this:

0693W000007ZPPTQA4.png

KiptonM
Lead

I got it!

You have to select the project, then File->Properties. To get to that screen.

Thanks, that fixed it.