Closed esaulenka closed 7 years ago
FLASH_ACR_LATENCY_2 - это не второй бит, это просто 2 :)
Видимо, тут двойка не от номера бита, а от числа WS.
действительно, самдурак. Прошу прощения за преждевременную панику.
PS а вот у меня в коде ошибка была...
* @file stm32f105xc.h
* @author MCD Application Team
* @version V4.0.0
* @date 16-December-2014
... skipped...
/******************* Bit definition for FLASH_ACR register ******************/
#define FLASH_ACR_LATENCY ((uint32_t)0x00000007) /*!< LATENCY[2:0] bits (Latency) */
#define FLASH_ACR_LATENCY_0 ((uint32_t)0x00000001) /*!< Bit 0 */
#define FLASH_ACR_LATENCY_1 ((uint32_t)0x00000002) /*!< Bit 1 */
#define FLASH_ACR_LATENCY_2 ((uint32_t)0x00000004) /*!< Bit 2 */
Да уж, зоопарк какой-то. Неужели им трудно было добавить в название конкретики:
FLASH_ACR_LATENCY_2_WS
или
FLASH_ACR_LATENCY_BIT_2
? Впрочем, это риторический вопрос :)
scmrtos-sample-projects/samples/cortex/mx-gcc/common/stm32/f1xx/sysinit.cpp
комментарий правильный, однако FLASH_ACR_LATENCY_2 - это установка бита 2, т.е., вероятно, 4 wait state'а (не знаю, поддерживается ли... проверять быстродействие поленился).
Корректный код должен выставлять первый бит:
Для остальных камней ошибки вроде б нет. Спасибо ST'шникам за простые и понятные заголовки, чтоб их...