使用STM32内部HSI (内部RC振荡)作为系统时钟

本文详细介绍了如何在STM32单片机中使用内部HSI RC振荡器作为系统时钟源,倍频至48MHz。通过宏定义切换时钟配置,实现不依赖外部晶振的成本优化方案。实验证明,无论是外部8MHz晶振还是内部HSI,都能正确设置系统时钟并验证其频率。
摘要由CSDN通过智能技术生成

使用STM32内部HSI (内部RC振荡)作为系统时钟

在实际应用中,有时候为了节约成本,我们会能省则省,特别是当项目对成本比较敏感的时候。
本文介绍的就是如何使用内部RC时钟(HSI)作为时钟源,并且倍频到48M作为系统时钟。 这样就能不依赖外部时钟。
实际案例是通过宏定义来切换,既可以使用外部8M晶振来倍频到72M;也可以使用内部的HSI倍频到48M。

一、源码配置

1、直接进入正文,我们在文件里定义了两个“宏”,用来切换时钟配置是选内部HSI还是外部高速HSE。
代码如下:

#define SYSCLOCK_CRYSTAL_OUTSIED (0)  /* 使用外部晶振 */
#define SYSCLOCK_RCCLOCK_INSIED  (1)  /* 使用内部RC振荡 */
/* 时钟源选择 */
#define SYSCLOCK_CHOISE          (SYSCLOCK_RCCLOCK_INSIED)

2、封装使用内部RC作为时钟源,并倍频到48M的函数HSI_SetSysClock();

3、主函数里根据“SYSCLOCK_CHOISE”决定是调用内部RC还是外部晶振作为系统时钟源。
这边我们用到了串口,是为了方便输出信息进行查看。
这里也封装了个函数SYS_CLOCK_OUT用来查看系统频率信息是否真确。
代码如下:

/**
  * @brief  输出系统时钟信息
  */
void SYS_CLOCK_OUT(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值