Er zählt maximal(!) bis zu der "Zahl" 2^16-1 (von 0 aus). Der timer
inkrementiert den Zählerstand jedes Mal, wenn er "aufgerufen" wird, was
so so häufig passiert, wie du den Takt eingestellt hast.
Der Timer muss aber nicht bis zur maximalen Größe zählen, du kannst
vorher auch einen anderen (niedrigeren) Maximalwert angeben.
In deinem Diagramm siehst du, dass der Systemtakt noch von dem AHB und
dem APB1 prescalern noch geteilt, anscheinend mit einem multiplier auch
noch wieder erhöht werden kann. Damit wählst du die passende Frequenz.
Wenn du einen Takt von z.B. 1Mhz hast, zählt er alle 1/1e6 s = 1µs einen
Wert hoch. Dein Timer ist also in maximal 1e-6*2^16s = 65,536 ms
durchgelaufen und fängt wieder bei 0 an. Du musst also berechnen, wie
oft der Timer aufgerufen werden muss, bis deine gewünscht Zeit erreicht
worden ist.
Es kann sein, dass es noch stm32 spezifische Eigenschaften gibt, z.B.
dass man einen Takt weniger oder mehr zählen muss, das weiß ich nicht.