老李的RT-THREAD学习02--改时钟

本文介绍了如何使用CubeMX更改STM32的时钟源为外部晶振,并在RT-Thread操作系统中进行相应的配置。通过设置外部晶振频率,调整系统运行速度,然后修改drv_clk.c文件中的时钟配置函数和stm32xxxx_hal_conf.h中的HSE_VALUE宏定义,确保系统时钟准确。最后,验证系统已运行在外部晶振状态下。
摘要由CSDN通过智能技术生成


上一讲提过,RT-Thread默认HSI,即高速片内时钟,这玩意不准确,再加上温漂,用起来并不放心,尤其在当项目中用到了各种通讯设备,如UART,CAN,485等要求准确时钟的时候,一般会使用外部晶振,即HSE,现在来做一下切换

生成CubeMX工程

改时钟,需要用到CubeMX生成的函数,以省心省力。当然对底层熟悉的话也可以自己写。其实就是系统时钟的初始化的过程。
按下图设置,其余默认在这里插入图片描述

1 进入时钟配置页面

2 按自己的板子设置好外部晶振的频率

3 F767的最高运行频率是216M,所以在此处输入216并回车,系统自动计算出所需要的时钟通路和相关参数

在这里插入图片描述

4 进入工程管理页面,输入工程要保存的路径,注意整个路径不能有中文,这是国外软件的通病

对应设置1,2,3,4,我用的是Keil MDK最新版,所以可以选V5.27
最后按5生成工程
在这里插入图片描述

5打开生成的工程

在这里插入图片描述

6 修改时钟函数

打开生成的工程,在main.c中找到SystemClock_Config这个函数,复制整个函数,不需要函数名,即图中蓝色的部分
在这里插入图片描述

修改 drv_clk.c

前文提到,需要在drv_clk.c中修改时钟函数,此时转到RT-Studio,找到drv_clk.c中的system_clock_config函数,将 { } 的内容替换为刚才复制的内容
这步的工作是将时钟初始化函数做了替换,系统已经是用外部晶振进行初始化工作了。

修改 HSE_VALUE 宏定义

但此时rt-thread这个操作系统并不知道系统时钟已经从默认的8MHz变为了12M,还需要通知一下操作系统
打开 stm32xxxx_hal_conf.h ,将HSE_VALUE的值改为外部晶振的实际频率,12M就写12000000
需要注意的是这个文件 stm32xxxx_hal_conf.h,其中的xxxx,是根据你芯片来的,F7系列,就是F7xx,F1系列就是F1xx
在这里插入图片描述

编译,运行,OK

如何证明此时的系统运行在外部晶振状态呢,很简单。
无源晶振的话,用镊子将外部晶振2个脚短路
有源晶振,就将输出脚对地短路
此时可以观察到LED的状态不再发生闪烁,系统停止运行
松开镊子,灯继续闪
完工

还有最后一件事,点赞 关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值