Записали конфигурацию GPIO, но вывод не переключается
Настраиваете вывод PB5 на выход и подаёте на него единицу:
GPIOB->MODER |= (1U << (5 * 2)); // PB5 в режим выхода
GPIOB->ODR |= (1U << 5); // подать высокий уровень
Светодиод не загорается. Отладчик показывает: после обеих записей регистры GPIOB читаются как нули, значения не сохраняются.
В чём наиболее вероятная причина?
- На этом семействе микроконтроллеров запись в ODR запрещена: менять состояние вывода можно только через регистр BSRR
- Вывод PB5 всегда занят отладочным интерфейсом SWD и потому недоступен пользовательскому приложению
- Отладчик не умеет читать регистры периферии по шине и всегда показывает нули вместо их реального содержимого
- На порт GPIOB не подана тактовая частота: пока периферия не затактована, запись в её регистры не сохраняется
