Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Stm32f10x stdperiph lib 3.5
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
demiurg_spb
Оригинал:
Код
#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
А обычные линейки по что забыли-то?
Полный список из 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
Ага, забыл. Спасибо!
Тогда вроде всё сходится...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.