Generating a delay on the order of microseconds (timer vs HAL_Delay())
You can start a timer and read the count until it is large enough. Or you can poll the overflow flag when it rolls over. No need for interrupts. You can also sit in a while or for loop for enough counts to reach 10us.