adnega 11 9 марта, 2014 Опубликовано 9 марта, 2014 · Жалоба Если оно не соответствует Вашему кварцу, то и расчет будет не верным. У меня кварц на 4096000, что отличается от дефолтного в 2 раза, вот тут то и были грабли. Т.е. Вы задали HSE_VALUE = 36864000 ? Фиксированный умножитель на 9 Вас устраивает? В моем случае 12МГц умноженые на 9 давали не работоспособные 108 МГц и правка HSE_VALUE = 108000000 не спасала(( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rimsky 0 9 марта, 2014 Опубликовано 9 марта, 2014 (изменено) · Жалоба Т.е. Вы задали HSE_VALUE = 36864000 ? Фиксированный умножитель на 9 Вас устраивает? В моем случае 12МГц умноженые на 9 давали не работоспособные 108 МГц и правка HSE_VALUE = 108000000 не спасала(( Нет, HSE_VALUE я установил 4096000 #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #else #define HSE_VALUE ((uint32_t)4096000) /*!< Value of the External oscillator in Hz */ #endif /* STM32F10X_CL */ #endif /* HSE_VALUE */ Изменено 9 марта, 2014 пользователем Rimsky Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 10 марта, 2014 Опубликовано 10 марта, 2014 · Жалоба Нет, HSE_VALUE я установил 4096000 #if !defined HSE_VALUE #ifdef STM32F10X_CL #define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */ #else #define HSE_VALUE ((uint32_t)4096000) /*!< Value of the External oscillator in Hz */ #endif /* STM32F10X_CL */ #endif /* HSE_VALUE */ Это частота внешнего кварца, а не частота с PLL. Точно. Т.е. Вы поправили библиотечный файл? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Rimsky 0 10 марта, 2014 Опубликовано 10 марта, 2014 · Жалоба Это частота внешнего кварца, а не частота с PLL. Точно. Т.е. Вы поправили библиотечный файл? Да это частота внешнего кварца. Библиотечный файл можно и не править, достаточно объявить это определение, например так: #ifndef __GLOBALS_H #define __GLOBALS_H #define HSE_VALUE ((uint32_t)4096000) #include "stm32f10x.h" #include "stm32f10x_conf.h" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 10 марта, 2014 Опубликовано 10 марта, 2014 · Жалоба Да это частота внешнего кварца. Библиотечный файл можно и не править, достаточно объявить это определение, например так: #ifndef __GLOBALS_H #define __GLOBALS_H #define HSE_VALUE ((uint32_t)4096000) #include "stm32f10x.h" #include "stm32f10x_conf.h" Объявить в каком файле? В stm32f10x_conf.h (любом .h-файле, вызаваемом из stm32f10x_conf.h) или в совершенно произвольном месте? А может в ключах компилятора? А если у меня частота кварца 12МГц, то какая будет частота PLL? А если мне нужна другая частота PLL? Спрошу по-другому: можно ли библиотеке указать частоту кварца 12МГц и частоту PLL 72МГц? И чтоб при этом все делители для UART рассчитывались правильно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Golikov 0 10 марта, 2014 Опубликовано 10 марта, 2014 · Жалоба можно прочитать главу мануала за 10 минут, а потом за 8 минут настроить правильно делители PLL и забить на все эти библиотеки. Библиотека на то и библиотека, чтобы гнать какой-то стандарт. В случае частоты, чем больше тем лучше, вот и выводят проц на максимум... А если пошли уже все фигли мигли, то ручками, ручками Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться