keil mdk V5.36下修改stm的Xtal

在该版本下的选择框中,发现Xtal这一栏并不能被修改,查看了相关的问题,才知道官方在这个版本中已经不支持直接在选择栏中来修改。

后面通过查询其启动文件,systeminit(),来查找相关时钟的配置信息

 

 在systeminit()下面会有一个时钟配置的函数:Setsysclock()

 

之后继续转到其定义的地方,查看该函数的详细介绍 

 

 最终找到关于stm32中的时钟频率的详细定义

 

默认是72MHZ, 由于此时需要内部产生时钟频率,并结合下图,可知应该让HSI被定义,这样就能够产生8MHZ

结合之前的时钟定义图以及配置图可知:

 因此将之前默认定义的72MHZ时钟频率的定义取消,就可以使用HSI(内部RC振荡)提供8MHZ

 

 

 

### KeilXTAL 配置方法及作用 #### 1. XTAL 的定义及其重要性 XTAL 是晶体振荡器 (Crystal Oscillator) 的缩写,用于为微控制器提供稳定的时钟源。这个时钟信号决定了系统的运行速度以及定时功能的准确性[^1]。 #### 2. Keil 版本更新带来的变化 自 Keil MDK 5.36 版起,官方取消了直接在参数配置界面中修改系统 XTAL 频率的功能。这意味着用户不能再像以前那样简单地通过图形化界面调整 XTAL 值[^4]。 #### 3. 新的配置方式 尽管 GUI 上不再允许直接更改 XTAL 参数,但仍可以通过其他途径实现相同目的: - **手动编辑启动文件**:对于 STM32 系列单片机而言,可以在 `system_stm32fxxx.c` 文件中的 SystemInit 函数里指定 HSE_VALUE 宏定义的实际值来间接设定外部晶振频率。 ```c #define HSE_VALUE ((uint32_t)8000000U) /*!< Value of the External oscillator in Hz */ ``` - **利用 HAL 库函数**:如果项目基于 ST 提供的标准外设库开发,则可通过调用 RCC_OscInitTypeDef 结构体成员变量 OSCILLATOR_HSE 来完成初始化工作。 ```c RCC_OscInitTypeDef RCC_OscInitStruct; ... RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; HAL_RCC_OscConfig(&RCC_OscInitStruct); ``` 上述两种方法均能有效替代原有的 UI 操作模式,并且更加灵活可控[^2]。 #### 4. 调试过程中如何验证 XTAL 设置正确与否 为了确保所设置的 XTAL 值无误,在实际编程调试阶段可借助于如下手段来进行检验: - 使用逻辑分析仪测量 GPIO 输出波形周期; - 利用串口打印当前系统核心时钟速率; - 或者开启 RTOS 内建的任务调度统计特性观察任务切换间隔是否符合预期等。 这些措施有助于确认最终应用能否按照预想的速度稳定执行各项指令序列[^3]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值