stm32f103 LL库初始化时钟源为内部hsi时钟为64mhz代码实现
下面是使用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分频。请根据你的需求修改代码中的其他配置
原文地址: https://www.cveoy.top/t/topic/ihJ9 著作权归作者所有。请勿转载和采集!