I’ve looked a bit more on the HAL way to do what I’ve sketched above.
I’ve missed at least two things:
- You should do a call to HAL_TIM_OC_ConfigChannel for th eoutput compare channel in your initialization routine
- In th einterrupt callbacks, you could know which channel is generating th einterrupt by looking at the htim->Channel field
Of course the initialzation part can be simplified a lot if you use CubeMX...