(一)看参考手册学stm32基于hal库,点灯时钟配置

(一)看参考手册学stm32基于hal库,点灯时钟配置

这篇文章主要是个人的学习经验,想分享出来供大家提供思路,如果其中有不足之处请批评指正哈。

废话不多说直接开始主题,本人是基于STM32F407VET6芯片,但是意在你看懂这篇文章后,不管是F1,F4,H7等一系列系统时钟配置都能明白如何通过参考手册去学习配置。而不是Ctrl c,Ctrl v。

时钟配置

首先看看数据手册目录找找有木有时钟相关的内容好定位。

1.这句话就告诉你了你可以不用外部接时钟用它内部的就行,16 MHz内部RC振荡器在出厂时经过修整,在整个温度范围内提供1%的精度。他是这么说但是我不这么相信,主要是我的开发板上有一块8M的外部晶振,不用就浪费了。
2.这就是外部晶振的频率要求,我就不翻译了。

3.看看我自己的开发板原理图,8M没问题

4.数据手册中告诉你了,APB,AHB总线的频率要求,一会我就会参照着他的要求设置cubemx的时钟树配置,是不是配置时钟有点思路了?
几个预分频器允许配置三个AHB总线,即高速APB(APB2)和低速APB (APB1)域。三个AHB总线的最大频率为168 MHz,而高速APB域的最大频率为168 MHz,84 MHz。低速APB域允许的最大频率为42Mhz。该器件嵌入了一个专用的锁相环(PLLI2S),可实现音频级性能。在这种情况下,i2s主时钟可以产生从8khz到192khz的所有标准采样频率。

再看看定时器的时钟配置

数据手册中还写到APB1线上的定时器84MHZ,APB1=42MHZ

APB2线上的定时器168MHZ,APB2=84MHZ.
CUBEMX时钟树的这几个数为什么知道由来了吧。

5.来到参考手册这看看相关时钟配置,你该想想如果是别的系列的芯片怎么看手册该怎么配置了?
6.他说3个不同的时钟源,三种不同的时钟源可用于驱动系统时钟(SYSCLK):

•恒生指数振荡器时钟

•HSE振荡器时钟

•主锁相环(PLL)时钟
好看看cubemx
还真是3个时钟源啊,只不过我用的主锁相环(PLL)时钟。其他时钟源还可以试试不会坏的,又不是VCC,GND。

7.设备有以下两个备用时钟源:

•32 kHz低速内部RC (LSI RC),驱动独立的看门狗,可选的RTC用于从停止/待机模式自动唤醒。

•32.768 kHz低速外部晶体(LSE晶体)可选驱动RTC时钟(RTCCLK)
本人用的外部时钟始终秉持着不用就浪费原则。
好好看看翻译,好好看看这几张图,思考一下你会豁然开朗的,因为每一块都是一一对应的关系。

9.这张抽象无比的时钟树真正关键的只有这几个小点,其他的我爱答不理。

配置cubemx

有了参考基础,接下来开始正式配置外部时钟

1.打开cubemx
2.本人用的是f407,如果是不一样的芯片按自己的型号来
3.上文也介绍了我不管是高速还是低速都用的是外部晶振,详见上文第3条第7条。
4.cubemx时钟树需要根据你的选择如果是外部晶振,需要根据你的原理图去配置,我原理图是32.768K,8M所以本人根据此配置。
5.再根据要求系统时钟(sysclk)不能超过180MHz,APB1<=42MHZ,APB1 CLOCK<=84MZ,APB2<=84MHZ,APB1 CLOCK<=168MZ满足以上要求即可,如图所示
至此你应该明白了,噢原来时钟只要小于他的限幅频率即可,那我设多少都可以比如SYSCLK<=180,那我179,178,176.52,168无论是不是浮点数只要小于180都是可以的。至此外部晶振的工作已经完成。

内部源时钟配置

1.失能即可,即进入内部时钟源
2.你会发现外部的时钟源那部分已经改不了了,其他内容配置同外部晶振配置

接下来怎么测试可行性呢?点个灯试试

F407按键点灯

经过测试不管是内部时钟还是外部时钟都没问题哈哈。

本文没有对点灯部分详细讲解,将会在下一篇文章中讲解物理知识以及hal库的使用,纯属个人经验,有不足之处希望大家指正。

相关推荐
尼喃11 分钟前
USB接口保护怎么设计?OVP芯片、TVS、ESD器件选型指南
嵌入式硬件
@嵌入式扫地僧25 分钟前
STM32 面试实战:GPIO 配置常用模式
stm32·推挽输出·上拉输入·gpio 配置·stm32 面试
LCG元27 分钟前
STM32F103 I2C 驱动 DS3231 高精度 RTC 实战:BCD 码解码陷阱、闹钟状态机整定与日误差实测
stm32·嵌入式硬件·实时音视频
沐欣工作室_lvyiyi41 分钟前
基于STM32的生活用水循环净化与浇灌系统(论文+源码)
stm32·软件工程·云平台·单片机毕业设计·单片机仿真·机械电子工程·伊犁师范学院
天空'之城1 小时前
单片机基础核心知识点汇总(四十六)
数据库·单片机·mongodb
cu1431 小时前
细谈GM8775C的具体功能和应用
c语言·c++·人工智能·嵌入式硬件
漫漫长远1 小时前
低功耗UPF介绍(一)
笔记·嵌入式硬件·学习·fpga开发
恒锐丰科技林技术员1 小时前
EG1165 半桥 PWM 控制芯片:高压大功率电源的优选控制器
经验分享·嵌入式硬件·硬件工程
恒锐丰科技林技术员1 小时前
宽压降压 DC‑DC 控制器 EG1190 应用解析
经验分享·嵌入式硬件·硬件工程
仲星(._.)1 小时前
GPIO
嵌入式硬件·gpio