STM32 判断工作频率
STM32 判断工作频率
在STM32微控制器中,判断当前的工作频率(系统时钟SYSCLK)有以下几种常用方法:
1. 直接读取全局变量 SystemCoreClock
- 说明:STM32的标准库和HAL库在初始化时会自动更新全局变量
SystemCoreClock,它直接存储了SYSCLK的频率(单位:Hz)。 -
操作步骤:
#include "stm32fxxx.h" // 替换为具体型号头文件(如stm32f4xx.h) uint32_t current_freq = SystemCoreClock; // 直接读取值 - 优点:简单高效,无需计算。
2. 调用HAL库函数 HAL_RCC_GetSysClockFreq()
- 说明:HAL库提供了专用函数获取系统时钟频率。
-
操作步骤:
#include "stm32fxxx_hal.h" // 替换为具体HAL头文件 uint32_t sysclk_freq = HAL_RCC_GetSysClockFreq(); // 返回SYSCLK频率 - 优点:结果准确,适用于使用HAL库的项目。
3. 手动计算时钟树频率
- 步骤:
- 确定时钟源:
读取RCC->CFGR寄存器的SWS位,判断当前系统时钟源:00:HSI(内部高速时钟,通常8 MHz)01:HSE(外部高速时钟,需根据硬件设计确定)10:PLL(锁相环输出)
- 计算PLL频率(若时钟源为PLL):
- 公式:
PLL输出频率 = (PLL输入源频率 / PLLM分频系数) × PLLN倍频系数 - 需读取
RCC->PLLCFGR寄存器中的PLLM、PLLN等参数。
- 公式:
- 考虑分频系数:
系统时钟可能经过AHB预分频器(HPRE位),但SystemCoreClock通常指未分频的SYSCLK。
- 确定时钟源:
-
示例代码:
uint32_t GetSysClockFreq(void) { uint32_t pllm, plln, pllp; uint32_t sysclk_source = RCC->CFGR & RCC_CFGR_SWS; // 读取时钟源 switch (sysclk_source) { case RCC_CFGR_SWS_HSI: // HSI return HSI_VALUE; // 通常8 MHz(见stm32fxxx.h定义) case RCC_CFGR_SWS_HSE: // HSE return HSE_VALUE; // 硬件外部晶振频率 case RCC_CFGR_SWS_PLL: // PLL pllm = (RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos; plln = (RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos; // 假设PLL输入源为HSI(需根据实际配置调整) return (HSI_VALUE / pllm) * plln; default: return 0; // 错误 } } - 注意:此方法复杂且需适配具体型号,推荐优先使用前两种。
推荐方案
- 首选
SystemCoreClock:
在初始化后直接使用此变量,它是大多数STM32工程的标准做法。 - 次选
HAL_RCC_GetSysClockFreq():
适用于基于HAL库或CubeMX生成的项目。 - 手动计算仅用于调试:
当需要深入理解时钟树或调试异常时使用。
✅ 最终建议:检查工程中的
SystemCoreClock变量,它是最可靠且高效的方式。
晶体管的工作状态判断方法
晶体管的工作状态判断是电子工程领域中的一项重要技能,它对于确保电路的正常运行和性能优化至关重要。晶体管的工作状态通常根据其内部PN结的偏置情况来
2024-09-23 18:16:14
如何判断继电器是否正常工作
判断继电器是否正常工作是一个涉及多个方面的过程,主要包括外观检查、电气性能测试以及实际应用中的表现等。以下将从这些方面详细阐述如何判断继电器是否
2024-09-10 11:06:02
stm32最高工作频率是多少
STM32是一款基于ARM Cortex-M内核的高性能微控制器,由STMicroelectronics公司生产。它具有丰富的外设和功能,广泛应用于各种嵌入式系统开发。本文将介绍STM32的最高
2024-01-03 15:54:23
STM32复位源判断
在项目中有时候会遇到单片机莫名奇妙复位的情况,为了判断是那种原因引起复位,就需要对单片机的复位源进行判断。现用STM32F103C8T6单片机进
资料下载
李林
2022-01-17 12:29:50
STM32的SPI峰值工作频率
【嵌入式】STM32时钟系统复习前言时钟系统SPI时钟频率问题前言SPI的初始化中需要配置波特率分频系数,需要了解stm32的时钟和总线等基础结
换一换
- 如何分清usb-c和type-c的区别
- 中国芯片现状怎样?芯片发展分析
- vga接口接线图及vga接口定义
- 芯片的工作原理是什么?
- 华为harmonyos是什么意思,看懂鸿蒙OS系统!
- 什么是蓝牙?它的主要作用是什么?
- ssd是什么意思
- 汽车电子包含哪些领域?
- TWS蓝牙耳机是什么意思?你真的了解吗
- 什么是单片机?有什么用?
- 升压电路图汇总解析
- plc的工作原理是什么?
- 再次免费公开一肖一吗
- 充电桩一般是如何收费的?有哪些收费标准?
- ADC是什么?高精度ADC是什么意思?
- dtmb信号覆盖城市查询
- EDA是什么?有什么作用?
- 中科院研发成功2nm光刻机
- 苹果手机哪几个支持无线充电的?
- type-c四根线接法图解
- 华为芯片为什么受制于美国?
- 怎样挑选路由器?
- 元宇宙概念股龙头一览
- 锂电池和铅酸电池哪个好?
- 什么是场效应管?它的作用是什么?
- 如何进行编码器的正确接线?接线方法介绍
- 虚短与虚断的概念介绍及区别
- 晶振的作用是什么?
- 大疆无人机的价格贵吗?大约在什么价位?
- 苹果nfc功能怎么复制门禁卡
- amoled屏幕和oled区别
- 单片机和嵌入式的区别是什么
- 复位电路的原理及作用
- BLDC电机技术分析
- dsp是什么意思?有什么作用?
- 苹果无线充电器怎么使用?
- iphone13promax电池容量是多少毫安
- 芯片的组成材料有什么
- 特斯拉充电桩充电是如何收费的?收费标准是什么?
- 直流电机驱动电路及原理图
- 传感器常见类型有哪些?
- 自举电路图
- 通讯隔离作用
- 苹果笔记本macbookpro18款与19款区别
- 新斯的指纹芯片供哪些客户
- 伺服电机是如何进行工作的?它的原理是什么?
- 无人机价钱多少?为什么说无人机烧钱?
- 以太网VPN技术概述
- 手机nfc功能打开好还是关闭好
- 十大公认音质好的无线蓝牙耳机