If I run a one-line Arduino program on a STM32F7 of
analogWrite(FAN1_PIN, 255)
I get a PWM signal with a very low duty cycle instead of the expect 100%.
Digging into the code I see pwm_start() setting up a HardwareTimer with a hard coded 12-bit resoultion:
HT->setCaptureCompare(channel, value, RESOLUTION_12B_COMPARE_FORMAT);