Solved
Is sprintf() supposed to support uint64_t numbers?
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.

