OpenMCU(五):STM32F103时钟树初始化分析
发布日期:2025-04-29 02:39:50 浏览次数:18 分类:精选文章

本文共 2026 字,大约阅读时间需要 6 分钟。

STM32F103????????????

STM32F103??????STC?????????????ARM Cortex-M3??????????????????AHB????????????????????????????????I2C?SPI?UART?ADC?DAC?????????????????????

????????????STM32F103???????????????PLL???????????????????

1. HSI?PLL??

STM32F103?????????HSI????????PLL??????HSI????????????32.768 kHz?PLL???HSI?????????????????PLL_MUL?????????

  • HSI????HSE??HSE???HSI?????????????HSE_PREDIV_DIV1???HSI??32.768 kHz??1????32.768 kHz?
  • PLL????PLL_MUL????PLL_MUL???????????????PLL_MUL???16??????PLLCLK = (HSI / 2) * PLL_MUL = (32.768 kHz / 2) * 16 = 64 MHz?

2. ???????

?STM32F103??PLL?????????????????

  • ??HSI????????????????
  • ??PLL???HSI??????????????16?
  • ????????PLL???????SYSCLK = 64 MHz?
  • ????????????????HCLK?PCLK1?PCLK2?
  • 3. PCB?HSI??

    ???PCB???????????

    • HSI??????????????????????
    • PCB??????????HSI???HSE????PLL??????
    • ???????????????????????????

    4. ????????

    ?STM32F103??????????????????

    void SystemClock_Config(void){    RCC_ClkInitTypeDef clkinitstruct = {0};    RCC_OscInitTypeDef oscinitstruct = {0};    /* ??PLL */    oscinitstruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;    oscinitstruct.HSEState = RCC_HSE_OFF;    oscinitstruct.HSIState = RCC_HSI_ON;    oscinitstruct.PLL.PLLState = RCC_PLL_ON;    oscinitstruct.PLL.PLLSource = RCC_PLLSOURCE_HSI_DIV2;    oscinitstruct.PLL.PLLMUL = RCC_PLL_MUL16;    if (HAL_RCC_OscConfig(&oscinitstruct) != HAL_OK)    {        /* ????? */        while(1);    }    /* ?????? */    clkinitstruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);    clkinitstruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;    clkinitstruct.AHBCLKDivider = RCC_SYSCLK_DIV1;    clkinitstruct.APB2CLKDivider = RCC_HCLK_DIV1;    clkinitstruct.APB1CLKDivider = RCC_HCLK_DIV2;    if (HAL_RCC_ClockConfig(&clkinitstruct, FLASH_LATENCY_2) != HAL_OK)    {        /* ????? */        while(1);    }}

    5. ????

    ???????STM32F103???????????????????PLL?????????????????????????????????????????????????????????????

    ??????????

    • ???????????PLL?????
    • ?????????????????
    • ????????????????????????
    上一篇:OpenMCU(四):STM32F103启动汇编代码分析
    下一篇:OpenMCU(二):GD32E23xx FreeRTOS移植

    发表评论

    最新留言

    路过按个爪印,很不错,赞一个!
    [***.219.124.196]2026年05月28日 14时24分50秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章