Я тут еще немного подумал: Можно определить длительность перегрузки:
t = C * U / i = 1нФ * 3В / 50мА = 60нс.
Однако у того-же STM32 есть в настройках порта скорость нарастания сигнала (Max output speed = 2, 10, 50 MHz). Если выбрать низкую скорость нарастания, то резистор не понадобится. Вуаля!!!
Например для Max out speed = 2MHz получаем скорость нарастания dU/dt = 3В / 0.25мкс = 12 В/мкс. При такой скорости и при емкости 1нФ имеем:
i = C * dU / dt = 1нФ * 12 В / мкс = 12мА. Вполне приемлемо.