diff --git a/boards.txt b/boards.txt index 91d0a25..92749d4 100644 --- a/boards.txt +++ b/boards.txt @@ -408,22 +408,10 @@ GenF002A.menu.UploadSpeed.1200=1200 GenF002A.menu.UploadSpeed.1200.upload.speed=1200 # HSI/HSE选择和主频 -GenF002A.menu.ClockSourceAndFrequency.HSI4M_HCLK4M=HSI 4Mhz, HCLK 4Mhz -GenF002A.menu.ClockSourceAndFrequency.HSI4M_HCLK4M.build.temp=-D{build.series}_HSI_4M_HCLK_4M -GenF002A.menu.ClockSourceAndFrequency.HSI4M_HCLK4M.build.f_cpu=4000000L - GenF002A.menu.ClockSourceAndFrequency.HSI8M_HCLK8M=HSI 8Mhz, HCLK 8Mhz GenF002A.menu.ClockSourceAndFrequency.HSI8M_HCLK8M.build.temp=-D{build.series}_HSI_8M_HCLK_8M GenF002A.menu.ClockSourceAndFrequency.HSI8M_HCLK8M.build.f_cpu=8000000L -GenF002A.menu.ClockSourceAndFrequency.HSI16M_HCLK16M=HSI 16Mhz, HCLK 16Mhz -GenF002A.menu.ClockSourceAndFrequency.HSI16M_HCLK16M.build.temp=-D{build.series}_HSI_16M_HCLK_16M -GenF002A.menu.ClockSourceAndFrequency.HSI16M_HCLK16M.build.f_cpu=16000000L - -GenF002A.menu.ClockSourceAndFrequency.HSI22_12M_HCLK22_12M=HSI 22.12Mhz, HCLK 22.12Mhz -GenF002A.menu.ClockSourceAndFrequency.HSI22_12M_HCLK22_12M.build.temp=-D{build.series}_HSI_22_12M_HCLK_22_12M -GenF002A.menu.ClockSourceAndFrequency.HSI22_12M_HCLK22_12M.build.f_cpu=22120000L - GenF002A.menu.ClockSourceAndFrequency.HSI24M_HCLK24M=HSI 24Mhz, HCLK 24Mhz GenF002A.menu.ClockSourceAndFrequency.HSI24M_HCLK24M.build.temp=-D{build.series}_HSI_24M_HCLK_24M GenF002A.menu.ClockSourceAndFrequency.HSI24M_HCLK24M.build.f_cpu=24000000L diff --git a/cores/arduino/py32/backup.h b/cores/arduino/py32/backup.h index 732311c..22caad1 100644 --- a/cores/arduino/py32/backup.h +++ b/cores/arduino/py32/backup.h @@ -68,8 +68,10 @@ static inline void resetBackupDomain(void) */ HAL_PWR_EnableBkUpAccess(); #endif +#if defined(RCC_BDCR_RTCSEL) __HAL_RCC_BACKUPRESET_FORCE(); __HAL_RCC_BACKUPRESET_RELEASE(); +#endif } static inline void enableBackupDomain(void) diff --git a/cores/arduino/py32/py32yyxx_hal_conf.h b/cores/arduino/py32/py32yyxx_hal_conf.h index 5aea187..d71e94e 100644 --- a/cores/arduino/py32/py32yyxx_hal_conf.h +++ b/cores/arduino/py32/py32yyxx_hal_conf.h @@ -6,7 +6,9 @@ */ #define HAL_MODULE_ENABLED #define HAL_CORTEX_MODULE_ENABLED +#if !defined (PY32F002Ax5) #define HAL_DMA_MODULE_ENABLED /* Required by other modules */ +#endif #define HAL_FLASH_MODULE_ENABLED #define HAL_GPIO_MODULE_ENABLED #define HAL_HSEM_MODULE_ENABLED @@ -40,7 +42,7 @@ #undef HAL_I2S_MODULE_ENABLED #endif -#if !defined(HAL_RTC_MODULE_DISABLED) +#if !defined(HAL_RTC_MODULE_DISABLED) && !defined (PY32F002Ax5) #define HAL_RTC_MODULE_ENABLED #else #undef HAL_RTC_MODULE_ENABLED diff --git a/libraries/SrcWrapper/src/HardwareTimer.cpp b/libraries/SrcWrapper/src/HardwareTimer.cpp index 6dcc476..88c05db 100644 --- a/libraries/SrcWrapper/src/HardwareTimer.cpp +++ b/libraries/SrcWrapper/src/HardwareTimer.cpp @@ -61,6 +61,7 @@ void HardwareTimer::setup(TIM_TypeDef *instance) _timerObj.handle.Instance = instance; _timerObj.handle.Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED; +#if (defined(DMA) || defined(DMA1)) _timerObj.handle.hdma[0] = NULL; _timerObj.handle.hdma[1] = NULL; _timerObj.handle.hdma[2] = NULL; @@ -68,6 +69,7 @@ void HardwareTimer::setup(TIM_TypeDef *instance) _timerObj.handle.hdma[4] = NULL; _timerObj.handle.hdma[5] = NULL; _timerObj.handle.hdma[6] = NULL; +#endif _timerObj.handle.Lock = HAL_UNLOCKED; _timerObj.handle.State = HAL_TIM_STATE_RESET; diff --git a/libraries/SrcWrapper/src/air/analog.cpp b/libraries/SrcWrapper/src/air/analog.cpp index 64a618c..632ce3b 100644 --- a/libraries/SrcWrapper/src/air/analog.cpp +++ b/libraries/SrcWrapper/src/air/analog.cpp @@ -897,6 +897,7 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution) AdcHandle.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE; /* Parameter discarded because software trigger chosen */ #endif #if !defined(AIR32F1xx) && !defined(AIRH7xx) && !defined(AIRMP1xx) && \ + !defined(PY32F002Ax5) && \ !defined(ADC1_V2_5) AdcHandle.Init.DMAContinuousRequests = DISABLE; /* DMA one-shot mode selected (not applied to this example) */ #endif @@ -940,7 +941,9 @@ uint16_t adc_read_value(PinName pin, uint32_t resolution) #endif AdcHandle.State = HAL_ADC_STATE_RESET; +#if !defined(PY32F002Ax5) AdcHandle.DMA_Handle = NULL; +#endif AdcHandle.Lock = HAL_UNLOCKED; /* Some other ADC_HandleTypeDef fields exists but not required */ diff --git a/libraries/SrcWrapper/src/air/clock.c b/libraries/SrcWrapper/src/air/clock.c index 0b150fe..aff80cf 100644 --- a/libraries/SrcWrapper/src/air/clock.c +++ b/libraries/SrcWrapper/src/air/clock.c @@ -115,6 +115,7 @@ void enableClock(sourceClock_t source) #endif } break; +#if defined (RCC_LSE_ON) case LSE_CLOCK: if (__HAL_RCC_GET_FLAG(RCC_FLAG_LSERDY) == RESET) { #ifdef __HAL_RCC_LSEDRIVE_CONFIG @@ -124,6 +125,7 @@ void enableClock(sourceClock_t source) RCC_OscInitStruct.LSEState = RCC_LSE_ON; } break; +#endif case HSE_CLOCK: if (__HAL_RCC_GET_FLAG(RCC_FLAG_HSERDY) == RESET) { RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; diff --git a/variants/PY32F002Axx/PY32F002A_Base/PeripheralPins.c b/variants/PY32F002Axx/PY32F002A_Base/PeripheralPins.c index 8ef94a5..b39f149 100644 --- a/variants/PY32F002Axx/PY32F002A_Base/PeripheralPins.c +++ b/variants/PY32F002Axx/PY32F002A_Base/PeripheralPins.c @@ -85,39 +85,23 @@ WEAK const PinMap PinMap_TIM[] = { {PA_0, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM1, 1, 1)}, // TIM1_CH1N {PA_1, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM1, 4, 0)}, // TIM1_CH4 {PA_1, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF14_TIM1, 2, 1)}, // TIM1_CH2N - {PA_2, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM3, 1, 0)}, // TIM3_CH1 {PA_3, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM1, 1, 0)}, // TIM1_CH1 - {PA_4, TIM14, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM14, 1, 0)}, // TIM14_CH1 - {PA_5, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM3, 3, 0)}, // TIM3_CH3 - {PA_6, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 1, 0)}, // TIM3_CH1 {PA_6, TIM16, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM16, 1, 0)}, // TIM16_CH1 - {PA_7, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 2, 0)}, // TIM3_CH2 - {PA_7, TIM17, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF5_TIM17, 1, 0)}, // TIM17_CH1 {PA_7, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 1)}, // TIM1_CH1N - {PA_7, TIM14, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_TIM14, 1, 0)}, // TIM14_CH1 {PA_8, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 1, 0)}, // TIM1_CH1 {PA_9, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 0)}, // TIM1_CH2 {PA_10, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 0)}, // TIM1_CH3 {PA_11, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 4, 0)}, // TIM1_CH4 {PA_13, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM1, 2, 0)}, // TIM1_CH2 - {PB_0, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 3, 0)}, // TIM3_CH3 {PB_0, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 2, 1)}, // TIM1_CH2N - {PB_1, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 4, 0)}, // TIM3_CH4 {PB_1, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM1, 3, 1)}, // TIM1_CH3N - {PB_1, TIM14, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_TIM14, 1, 0)}, // TIM3_CH1 {PB_3, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 - {PB_4, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 1, 0)}, // TIM3_CH1 - {PB_5, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM3, 2, 0)}, // TIM3_CH2 {PB_6, TIM16, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM16, 1, 1)}, // TIM16_CH1N {PB_5, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 2, 0)}, // TIM1_CH2 {PB_6, TIM1, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_TIM1, 3, 0)}, // TIM1_CH3 {PB_6, TIM16, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM16, 1, 1)}, // TIM16_CH1N - {PB_7, TIM17, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM17, 1, 1)}, // TIM17_CH1N {PB_8, TIM16, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM16, 1, 0)}, // TIM16_CH1 - {PB_8, TIM17, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM17, 1, 0)}, // TIM17_CH1 - {PF_0, TIM14, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_TIM14, 1, 0)}, // TIM14_CH1 - {PF_1, TIM14, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM14, 1, 0)}, // TIM14_CH1 - {PF_3, TIM3, PY32_PIN_DATA_EXT(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF13_TIM3, 3, 0)}, // TIM3_CH3 + {NC, NP, 0} }; #endif @@ -135,17 +119,7 @@ WEAK const PinMap PinMap_UART_TX[] = { {PB_8, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART1)}, {PF_1, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART1)}, {PF_3, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)}, - {PA_0, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_2, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_4, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_7, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_9, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_14, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PB_6, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PB_8, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PF_0, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PF_1, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PF_3, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, + {NC, NP, 0} }; #endif @@ -161,17 +135,7 @@ WEAK const PinMap PinMap_UART_RX[] = { {PB_2, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)}, {PB_7, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_USART1)}, {PF_0, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF8_USART1)}, - {PA_1, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_3, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_5, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_8, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PA_10, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_15, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PB_2, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_USART2)}, - {PB_7, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PF_0, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PF_1, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF9_USART2)}, - {PF_2, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, + {NC, NP, 0} }; #endif @@ -181,9 +145,7 @@ WEAK const PinMap PinMap_UART_RTS[] = { {PA_1, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)}, {PA_12, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)}, {PB_3, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_USART1)}, - {PA_1, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_12, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PB_3, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, + {NC, NP, 0} }; #endif @@ -193,9 +155,7 @@ WEAK const PinMap PinMap_UART_CTS[] = { {PA_0, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)}, {PA_11, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_USART1)}, {PB_4, USART1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_USART1)}, - {PA_0, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PA_11, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, - {PB_4, USART2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF4_USART2)}, + {NC, NP, 0} }; #endif @@ -211,10 +171,6 @@ WEAK const PinMap PinMap_SPI_MOSI[] = { {PA_8, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_SPI1)}, {PA_12, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, {PB_5, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, - {PA_4, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF2_SPI2)}, - {PA_10, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)}, - {PB_7, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)}, - {PF_2, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)}, {NC, NP, 0} }; @@ -228,11 +184,7 @@ WEAK const PinMap PinMap_SPI_MISO[] = { {PA_11, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, {PA_13, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_SPI1)}, {PB_4, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, - {PA_3, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)}, - {PA_9, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)}, - {PB_6, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)}, - {PF_1, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)}, - {PF_3, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)}, + {NC, NP, 0} }; #endif @@ -244,10 +196,7 @@ WEAK const PinMap PinMap_SPI_SCLK[] = { {PA_5, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, {PA_9, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_SPI1)}, {PB_3, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, - {PA_0, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)}, - {PB_2, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)}, - {PB_8, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF1_SPI2)}, - {PF_0, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF3_SPI2)}, + {NC, NP, 0} }; #endif @@ -259,8 +208,7 @@ WEAK const PinMap PinMap_SPI_SSEL[] = { {PB_0, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI1)}, {PF_1, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_SPI1)}, {PF_3, SPI1, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF10_SPI1)}, - {PA_8, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF0_SPI2)}, - {PB_8, SPI2, PY32_PIN_DATA(PY32_MODE_AF_PP, GPIO_PULLUP, GPIO_AF11_SPI2)}, + {NC, NP, 0} }; #endif diff --git a/variants/PY32F002Axx/PY32F002A_Base/generic_clock.c b/variants/PY32F002Axx/PY32F002A_Base/generic_clock.c index f1747a4..d7bca6c 100644 --- a/variants/PY32F002Axx/PY32F002A_Base/generic_clock.c +++ b/variants/PY32F002Axx/PY32F002A_Base/generic_clock.c @@ -27,46 +27,11 @@ WEAK void SystemClock_Config(void) RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSI; RCC_OscInitStruct.LSIState = RCC_LSI_ON; -#elif PY32F0xx_LSC_LSE - RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_LSE; - RCC_OscInitStruct.LSEState = RCC_LSE_ON; - RCC_OscInitStruct.LSEDriver = RCC_LSEDRIVE_MEDIUM; - #elif PY32F0xx_LSC_NONE RCC_OscInitStruct.LSIState = RCC_LSI_OFF; - RCC_OscInitStruct.LSEState = RCC_LSE_OFF; -#endif - -#if defined(PY32F0xx_HSI_4M_HCLK_4M) -#ifdef HSI_VALUE -#undef HSI_VALUE #endif -#define HSI_VALUE 4000000U - /* 振荡器配置 */ - RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* 开启HSI */ - RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1分频 */ - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_4MHz; /* 配置HSI时钟4MHz */ - RCC_OscInitStruct.HSEState = RCC_HSE_OFF; /* 关闭HSE */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /*不选择时钟源*/ - /* 配置振荡器 */ - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - /* 时钟源配置 */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; /* 选择配置时钟 HCLK,SYSCLK,PCLK1 */ - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; /* 选择HSI作为系统时钟 */ - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB时钟 1分频 */ - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB时钟 1分频 */ - /* 配置时钟源 */ - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - { - Error_Handler(); - } -#elif defined(PY32F0xx_HSI_8M_HCLK_8M) +#if defined(PY32F0xx_HSI_8M_HCLK_8M) #ifdef HSI_VALUE #undef HSI_VALUE #endif @@ -77,68 +42,6 @@ WEAK void SystemClock_Config(void) RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1分频 */ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_8MHz; /* 配置HSI时钟8MHz */ RCC_OscInitStruct.HSEState = RCC_HSE_OFF; /* 关闭HSE */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /*不选择时钟源*/ - /* 配置振荡器 */ - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - /* 时钟源配置 */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; /* 选择配置时钟 HCLK,SYSCLK,PCLK1 */ - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; /* 选择HSI作为系统时钟 */ - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB时钟 1分频 */ - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB时钟 1分频 */ - /* 配置时钟源 */ - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - { - Error_Handler(); - } - -#elif defined(PY32F0xx_HSI_16M_HCLK_16M) -#ifdef HSI_VALUE -#undef HSI_VALUE -#endif -#define HSI_VALUE 16000000U - /* 振荡器配置 */ - RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* 开启HSI */ - RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1分频 */ - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_16MHz; /* 配置HSI时钟16MHz */ - RCC_OscInitStruct.HSEState = RCC_HSE_OFF; /* 关闭HSE */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /*不选择时钟源*/ - /* 配置振荡器 */ - if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) - { - Error_Handler(); - } - - /* 时钟源配置 */ - RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1; /* 选择配置时钟 HCLK,SYSCLK,PCLK1 */ - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSI; /* 选择HSI作为系统时钟 */ - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; /* AHB时钟 1分频 */ - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; /* APB时钟 1分频 */ - /* 配置时钟源 */ - if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_0) != HAL_OK) - { - Error_Handler(); - } - -#elif defined(PY32F0xx_HSI_22_12M_HCLK_22_12M) -#ifdef HSI_VALUE -#undef HSI_VALUE -#endif -#define HSI_VALUE 22120000U - /* 振荡器配置 */ - RCC_OscInitStruct.OscillatorType |= RCC_OSCILLATORTYPE_HSI; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; /* 开启HSI */ - RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1分频 */ - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_22p12MHz; /* 配置HSI时钟22.12MHz */ - RCC_OscInitStruct.HSEState = RCC_HSE_OFF; /* 关闭HSE */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /*不选择时钟源*/ /* 配置振荡器 */ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { @@ -167,8 +70,6 @@ WEAK void SystemClock_Config(void) RCC_OscInitStruct.HSIDiv = RCC_HSI_DIV1; /* HSI 1分频 */ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* 配置HSI时钟24MHz */ RCC_OscInitStruct.HSEState = RCC_HSE_OFF; /* 关闭HSE */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /*不选择时钟源*/ /* 配置振荡器 */ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { @@ -198,8 +99,6 @@ WEAK void SystemClock_Config(void) // RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* 配置HSI输出时钟为8MHz */ RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* 开启HSE */ RCC_OscInitStruct.HSEFreq = RCC_HSE_8_16MHz; /* HSE晶振工作频率16M~32M */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /* 不选择PLL源 */ /* 配置振荡器 */ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { @@ -229,8 +128,6 @@ WEAK void SystemClock_Config(void) // RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* 配置HSI输出时钟为8MHz */ RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* 开启HSE */ RCC_OscInitStruct.HSEFreq = RCC_HSE_8_16MHz; /* HSE晶振工作频率16M~32M */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /* 不选择PLL源 */ /* 配置振荡器 */ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { @@ -260,8 +157,6 @@ WEAK void SystemClock_Config(void) // RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_24MHz; /* 配置HSI输出时钟为8MHz */ RCC_OscInitStruct.HSEState = RCC_HSE_ON; /* 开启HSE */ RCC_OscInitStruct.HSEFreq = RCC_HSE_16_32MHz; /* HSE晶振工作频率16M~32M */ - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_OFF; /* 关闭PLL */ - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_NONE; /* 不选择PLL源 */ /* 配置振荡器 */ if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) { diff --git a/variants/PY32F002Axx/PY32F002A_Base/variant_generic.h b/variants/PY32F002Axx/PY32F002A_Base/variant_generic.h index 9bffa83..29c8ae5 100644 --- a/variants/PY32F002Axx/PY32F002A_Base/variant_generic.h +++ b/variants/PY32F002Axx/PY32F002A_Base/variant_generic.h @@ -16,8 +16,6 @@ * PY32 MCU pins number *----------------------------------------------------------------------------*/ -#define RCC_PLL_SUPPORT - #define PA0 PIN_A0 #define PA1 PIN_A1 #define PA2 PIN_A2 @@ -118,7 +116,7 @@ #define TIMER_TONE TIM16 #endif #ifndef TIMER_SERVO - #define TIMER_SERVO TIM14 + // #define TIMER_SERVO TIM14 #endif // UART Definitions