Добрый день. Снова возникли вопросы по указанной плате.
Судь в следующем. В документации на контроллер про регистр RCC_CR указанно состояние при сбросе 0x0000ХХ83. Что означает включение HSI и отключение HSE, PLL main и PLL I2S.
Однако, в отладчике в регистрах при загрузке стоят совсем другие значения. Из которых видно, что все элелементы, кроме PLL I2S включены. И выключить их удалось, только после загрузки в регистр RCC_CFGR значения с выбором источника тактирования. До этого побитно отключить неиспользуемые элементы не удалось. Значения в регистре RCC_CR не менялись.
Вдобавок, в описании регистра RCC_CFGR присутствует такая строчка "1 or 2 wait states inserted only if the access occurs during a clock source switch"
Перевести её по словам не сложно, но общий смысл по отношению к контроллеру понять не смог... Значения регистра при инициализации указанны 0х00000000... Однако в отладчике снова другие значения...
Опытным путём установил, что обратиться к данному регистру изменяя биты отдельно, не получается...
Вот эта надпись работает:
RCC->CFGR = 0x00000001; // set HSE system clock
А вот эта нет:
RCC->CFGR |= (1<<0); // set HSE system clock
Может быть кто-то разбирался с этим регистром...? О каких задержках идёт речь в нём, когда их нужно вставлять и при каких переключениях...?
И только после установки RCC->CFGR = 0x00000001; // set HSE system clock можно было отключить HSI и PLL main сбрасывая соответствующие биты регистра RCC_CR...