下面是使用stm32f103的LL库将时钟源设置为内部HSI时钟为64MHz的代码示例:

#include "stm32f1xx_ll_rcc.h"

int main(void)
{
    // 启动内部HSI时钟
    LL_RCC_HSI_Enable();
    while (LL_RCC_HSI_IsReady() != 1);

    // 设置FLASH延迟缓存
    LL_FLASH_SetLatency(LL_FLASH_LATENCY_2);

    // 配置PLL参数
    LL_RCC_PLL_ConfigDomain_SYS(LL_RCC_PLLSOURCE_HSI_DIV_2, LL_RCC_PLL_MUL_16);

    // 启用PLL
    LL_RCC_PLL_Enable();
    while (LL_RCC_PLL_IsReady() != 1);

    // 设置系统时钟源为PLL
    LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_PLL);

    // 等待系统时钟源变更完成
    while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_PLL);

    // 设置AHB时钟为SYSCLK
    LL_RCC_SetAHBPrescaler(LL_RCC_SYSCLK_DIV_1);

    // 设置APB1时钟为AHB时钟的2分频
    LL_RCC_SetAPB1Prescaler(LL_RCC_APB1_DIV_2);

    // 设置APB2时钟为AHB时钟的1分频
    LL_RCC_SetAPB2Prescaler(LL_RCC_APB2_DIV_1);

    // 获取系统时钟频率
    uint32_t sysClockFreq = LL_RCC_GetSystemClockFreq();

    // 你的代码...

    while (1)
    {
        // 主循环
    }
}

这段代码将时钟源设置为内部HSI时钟,并将其倍频为64MHz,然后设置系统时钟源为PLL。最后,它设置了AHB时钟为SYSCLK,APB1时钟为AHB时钟的2分频,APB2时钟为AHB时钟的1分频。请根据你的需求修改代码中的其他配置

stm32f103 LL库初始化时钟源为内部hsi时钟为64mhz代码实现

原文地址: https://www.cveoy.top/t/topic/ihJ9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录