demiurg_spb 0 13 марта, 2013 Опубликовано 13 марта, 2013 · Жалоба Оригинал: #define RCC_PLLSource_HSI_Div2 ((uint32_t)0x00000000) #if !defined (STM32F10X_LD_VL) && !defined (STM32F10X_MD_VL) && !defined (STM32F10X_HD_VL) && !defined (STM32F10X_CL) # define RCC_PLLSource_HSE_Div1 ((uint32_t)0x00010000) # define RCC_PLLSource_HSE_Div2 ((uint32_t)0x00030000) # define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ ((SOURCE) == RCC_PLLSource_HSE_Div1) || \ ((SOURCE) == RCC_PLLSource_HSE_Div2)) #else # define RCC_PLLSource_PREDIV1 ((uint32_t)0x00010000) # define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ ((SOURCE) == RCC_PLLSource_PREDIV1)) #endif Как ИМХО должно быть (судя по TRM модуль RCC иной лишь в connectrivity line и только в нём нет RCC_PLLSource_HSE_Div2 т.к. там имеется PLL2): #define RCC_PLLSource_HSI_Div2 ((uint32_t)0x00000000) #if defined (STM32F10X_LD_VL) || defined (STM32F10X_MD_VL) || defined (STM32F10X_HD_VL) # define RCC_PLLSource_HSE_Div1 ((uint32_t)0x00010000) # define RCC_PLLSource_HSE_Div2 ((uint32_t)0x00030000) # define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ ((SOURCE) == RCC_PLLSource_HSE_Div1) || \ ((SOURCE) == RCC_PLLSource_HSE_Div2)) #elif defined (STM32F10X_CL) # define RCC_PLLSource_PREDIV1 ((uint32_t)0x00010000) # define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \ ((SOURCE) == RCC_PLLSource_PREDIV1)) #else # error UNKNOWN MCU_LINE! #endif Это может быть нужным при использовании внешнего кварца на 16МГц (собственно я из-за этого и наткнулся на этот косяк) и при грамотном объявлении типа линейки STM32: STM32F10X_LD_VL STM32F10X_MD_VL STM32F10X_HD_VL STM32F10X_CL Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Flexz 0 13 марта, 2013 Опубликовано 13 марта, 2013 · Жалоба А обычные линейки по что забыли-то? Полный список из stm32f10x.h /* #define STM32F10X_LD */ /*!< STM32F10X_LD: STM32 Low density devices */ /* #define STM32F10X_LD_VL */ /*!< STM32F10X_LD_VL: STM32 Low density Value Line devices */ /* #define STM32F10X_MD */ /*!< STM32F10X_MD: STM32 Medium density devices */ /* #define STM32F10X_MD_VL */ /*!< STM32F10X_MD_VL: STM32 Medium density Value Line devices */ /* #define STM32F10X_HD */ /*!< STM32F10X_HD: STM32 High density devices */ /* #define STM32F10X_HD_VL */ /*!< STM32F10X_HD_VL: STM32 High density value line devices */ /* #define STM32F10X_XL */ /*!< STM32F10X_XL: STM32 XL-density devices */ /* #define STM32F10X_CL */ /*!< STM32F10X_CL: STM32 Connectivity line devices */ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 13 марта, 2013 Опубликовано 13 марта, 2013 · Жалоба Ага, забыл. Спасибо! Тогда вроде всё сходится... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться