STM32 — GPIO. Блокировка выводов

Представьте себе ситуацию: к STM32 подключено какое-либо устройство, которое устанавливает значения на пинах микроконтроллера (0, либо 1). То есть данные пины включены на вход. И тут, из-за ошибки в коде, либо из-за какого либо другого сбоя данные пины переключаются на выход с подключением к земле/питанию. В этом случае через вывод пойдёт слишком большой ток и микропроцессор выйдет из строя. Чтобы такого не произошло можно заблокировать конфигурацию портов.

Это делается с помощью функции GPIO_PinLockConfig. Например так:

// Блокируем изменения PC2 и PC3
GPIO_PinLockConfig(GPIOC, GPIO_Pin_2 | GPIO_Pin_3);

Теперь изменить конфигурацию можно будет только после сброса.