mirror of
https://github.com/IcedRooibos/py32f0-template.git
synced 2025-10-29 08:52:04 -07:00
feat: add hse/hsi init functions to bsp
This commit is contained in:
parent
f2634a8d71
commit
2d498d808b
@ -14,7 +14,7 @@ static void APP_DMAConfig(void);
|
|||||||
|
|
||||||
int main(void)
|
int main(void)
|
||||||
{
|
{
|
||||||
BSP_HSI_48MConfig();
|
BSP_HSI_PLL_48MConfig();
|
||||||
|
|
||||||
BSP_USART_Config(115200);
|
BSP_USART_Config(115200);
|
||||||
printf("ADC Timer Trigger DMA Demo\r\nClock: %ld\r\n", SystemCoreClock);
|
printf("ADC Timer Trigger DMA Demo\r\nClock: %ld\r\n", SystemCoreClock);
|
||||||
@ -29,6 +29,17 @@ int main(void)
|
|||||||
while (1);
|
while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void APP_TimerInit(void)
|
||||||
|
{
|
||||||
|
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_TIM1);
|
||||||
|
LL_TIM_SetPrescaler(TIM1, (SystemCoreClock / 6000) - 1);
|
||||||
|
LL_TIM_SetAutoReload(TIM1, 6000 - 1);
|
||||||
|
/* Triggered by update */
|
||||||
|
LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_UPDATE);
|
||||||
|
|
||||||
|
LL_TIM_EnableCounter(TIM1);
|
||||||
|
}
|
||||||
|
|
||||||
static void APP_ADCConfig(void)
|
static void APP_ADCConfig(void)
|
||||||
{
|
{
|
||||||
__IO uint32_t backup_setting_adc_dma_transfer = 0;
|
__IO uint32_t backup_setting_adc_dma_transfer = 0;
|
||||||
@ -79,18 +90,6 @@ static void APP_ADCConfig(void)
|
|||||||
LL_ADC_Enable(ADC1);
|
LL_ADC_Enable(ADC1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void APP_TimerInit(void)
|
|
||||||
{
|
|
||||||
LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_TIM1);
|
|
||||||
/* Set period to 48000000 for 48MHz clock */
|
|
||||||
LL_TIM_SetPrescaler(TIM1, 6000 - 1);
|
|
||||||
LL_TIM_SetAutoReload(TIM1, 8000 - 1);
|
|
||||||
/* Triggered by update */
|
|
||||||
LL_TIM_SetTriggerOutput(TIM1, LL_TIM_TRGO_UPDATE);
|
|
||||||
|
|
||||||
LL_TIM_EnableCounter(TIM1);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void APP_DMAConfig(void)
|
static void APP_DMAConfig(void)
|
||||||
{
|
{
|
||||||
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
|
LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_DMA1);
|
||||||
|
|||||||
@ -24,7 +24,10 @@ extern "C" {
|
|||||||
#include "py32f0xx_ll_gpio.h"
|
#include "py32f0xx_ll_gpio.h"
|
||||||
#include "py32f0xx_ll_usart.h"
|
#include "py32f0xx_ll_usart.h"
|
||||||
|
|
||||||
void BSP_HSI_48MConfig(void);
|
void BSP_HSI_PLL_48MConfig(void);
|
||||||
|
void BSP_HSI_24MConfig(void);
|
||||||
|
void BSP_HSE_PLL_Config(void);
|
||||||
|
void BSP_HSE_Config(void);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
#include "py32f0xx_bsp_clock.h"
|
#include "py32f0xx_bsp_clock.h"
|
||||||
|
|
||||||
void BSP_HSI_48MConfig(void)
|
void BSP_HSI_PLL_48MConfig(void)
|
||||||
{
|
{
|
||||||
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct;
|
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct;
|
||||||
|
|
||||||
@ -17,3 +17,55 @@ void BSP_HSI_48MConfig(void)
|
|||||||
LL_InitTick(48000000, 1000U);
|
LL_InitTick(48000000, 1000U);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BSP_HSI_24MConfig(void)
|
||||||
|
{
|
||||||
|
LL_RCC_HSI_Enable();
|
||||||
|
LL_RCC_HSI_SetCalibFreq(LL_RCC_HSICALIBRATION_24MHz);
|
||||||
|
while(LL_RCC_HSI_IsReady() != 1);
|
||||||
|
|
||||||
|
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
|
||||||
|
|
||||||
|
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSISYS);
|
||||||
|
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSISYS);
|
||||||
|
|
||||||
|
LL_FLASH_SetLatency(LL_FLASH_LATENCY_0);
|
||||||
|
|
||||||
|
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
|
||||||
|
/* Update global SystemCoreClock(or through SystemCoreClockUpdate function) */
|
||||||
|
LL_SetSystemCoreClock(24000000);
|
||||||
|
/* Re-init frequency of SysTick source */
|
||||||
|
LL_InitTick(24000000, 1000U);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BSP_HSE_PLL_Config(void)
|
||||||
|
{
|
||||||
|
LL_UTILS_ClkInitTypeDef UTILS_ClkInitStruct;
|
||||||
|
|
||||||
|
LL_RCC_HSE_Enable();
|
||||||
|
LL_RCC_HSE_SetFreqRegion(LL_RCC_HSE_16_32MHz);
|
||||||
|
while(LL_RCC_HSE_IsReady() != 1);
|
||||||
|
|
||||||
|
UTILS_ClkInitStruct.AHBCLKDivider = LL_RCC_SYSCLK_DIV_1;
|
||||||
|
UTILS_ClkInitStruct.APB1CLKDivider = LL_RCC_APB1_DIV_1;
|
||||||
|
LL_PLL_ConfigSystemClock_HSE(HSE_VALUE, LL_UTILS_HSEBYPASS_OFF, &UTILS_ClkInitStruct);
|
||||||
|
/* Re-init frequency of SysTick source */
|
||||||
|
LL_InitTick(HSE_VALUE * 2, 1000U);
|
||||||
|
}
|
||||||
|
|
||||||
|
void BSP_HSE_Config(void)
|
||||||
|
{
|
||||||
|
LL_RCC_HSE_Enable();
|
||||||
|
LL_RCC_HSE_SetFreqRegion(LL_RCC_HSE_16_32MHz);
|
||||||
|
while(LL_RCC_HSE_IsReady() != 1);
|
||||||
|
|
||||||
|
LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);
|
||||||
|
|
||||||
|
LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSE);
|
||||||
|
while(LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
|
||||||
|
|
||||||
|
LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_1);
|
||||||
|
/* Update global SystemCoreClock(or through SystemCoreClockUpdate function) */
|
||||||
|
LL_SetSystemCoreClock(HSE_VALUE);
|
||||||
|
/* Re-init frequency of SysTick source */
|
||||||
|
LL_InitTick(HSE_VALUE, 1000U);
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user