Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

STM32 настройка частоты в system_stm32f10x.c

Сб июл 14, 2018 10:58:04

Всем привет, кто-нибудь может рассказать как работают следующие строчки из файла system_stm32f10x.c :
( среда - Keil )
Спойлер/*!< Uncomment the line corresponding to the desired System clock (SYSCLK)
frequency (after reset the HSI is used as SYSCLK source)

IMPORTANT NOTE:
==============
1. After each device reset the HSI is used as System clock source.

2. Please make sure that the selected System clock doesn't exceed your device's
maximum frequency.

3. If none of the define below is enabled, the HSI is used as System clock
source.

4. The System clock configuration functions provided within this file assume that:
- For Low, Medium and High density Value line devices an external 8MHz
crystal is used to drive the System clock.
- For Low, Medium and High density devices an external 8MHz crystal is
used to drive the System clock.
- For Connectivity line devices an external 25MHz crystal is used to drive
the System clock.
If you are using different crystal you have to adapt those functions accordingly.
*/

#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
#define SYSCLK_FREQ_24MHz 24000000
#else
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
/* #define SYSCLK_FREQ_24MHz 24000000 */
/* #define SYSCLK_FREQ_36MHz 36000000 */
/* #define SYSCLK_FREQ_48MHz 48000000 */
/* #define SYSCLK_FREQ_56MHz 56000000 */
#define SYSCLK_FREQ_72MHz 72000000
#endif

При каких условиях в данном случае он запустится на частоте 24MHz, при каких от 72MHz?

Re: STM32 настройка частоты в system_stm32f10x.c

Сб июл 14, 2018 11:08:37

От того какая из строк раскомментирована, зависит частота SYSCLK. Если раскомментирована HSE_VALUE, то она соответствует частоте кварца. В других случаях, частота будет иметь значение как в имени константы при условии что частота кварца 8 МГц.

Re: STM32 настройка частоты в system_stm32f10x.c

Сб июл 14, 2018 11:17:06

Я правильно думаю, что в данном случае SYSCLK будет работать на 72MHz, а в случае проблем с этим источником/частотой будет работать на 24MHz ?

Re: STM32 настройка частоты в system_stm32f10x.c

Сб июл 14, 2018 12:35:49

aiRicko, не в случае "проблем с этим источником", а в зависимости от выбора линейки.

#if , #else,#define, #endif директивы условной компиляции препроцессора компилятора а не операторы .

Для повышения кругозора - https://prog-cpp.ru/c-directives/

http://we.easyelectronics.ru/Soft/preprocessor-c.html

Re: STM32 настройка частоты в system_stm32f10x.c

Сб июл 14, 2018 19:42:07

Все понятно, что-то я не обратил внимания ни на # ни на defined, раньше пользовался только #include и #define. Получается если к проекту подключен один из этих файлов - компилируется первый вариант, если нет - второй ?

Re: STM32 настройка частоты в system_stm32f10x.c

Вс июл 15, 2018 10:09:42

Не файлы а дефайны, то бишь определение.
А они или прописываются в опциях препроцессора, либо в хэдерах.
Настоятельно прошу - найдите курс лекций Линского на тытрубе , и внимательно изучите основы компиляции.

Re: STM32 настройка частоты в system_stm32f10x.c

Вс июл 15, 2018 11:37:03

Спасибо за информацию. Курс лекций Линского C++ ?

Re: STM32 настройка частоты в system_stm32f10x.c

Вс июл 15, 2018 13:19:52

Да, несмотря на то что лекции о плюсах, в самом начале информация о просто С и основах компиляции.
Изложено весьма доходчиво, рекомендую с совместным чтением классиков - Керниган и Ричи...
Если что не поймете, спрашивайте здесь.

ЗЫ. Мурику так же не помешало бы, поменьше бы кидался на всякую хрень...

Re: STM32 настройка частоты в system_stm32f10x.c

Вс июл 15, 2018 22:24:26

Досикус, вам бы не помешал бы курс хороших манер, а то хамите слишком часто.
Ответить