(一)看参考手册学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库的使用,纯属个人经验,有不足之处希望大家指正

相关推荐
2CM_Embed19 小时前
Altium Designer 原理图与 PCB 快速相互定位:Cross Probe 交叉探针
嵌入式硬件·pcb·altium designer·c2000
恒锐丰-罗生21 小时前
宽压大电流同步降压优选|CN3906 DC-DC 电源芯片,车载 / 工控 / IoT 全能供电方案
嵌入式硬件·硬件工程
happygrilclh1 天前
STM32,串口单字节中断接受,每次上电后,会收到一个0x00的解决办法。
单片机·嵌入式硬件
智闲电子设计1 天前
STM32 独立看门狗 IWDG 实战:系统跑飞,它来兜底复位
stm32·单片机·嵌入式硬件
zcmodeltech1 天前
智能制造教学实训沙盘模型多系统协同控制系统设计:基于STM32与Modbus RTU的工业机器人-智慧工厂-数字孪生全场景联动方案
数据库·stm32·嵌入式硬件·机器人·制造·多分类
程序员与背包客_CoderZ1 天前
Linux D-Bus通信协议详解:从入门到C/C++编码实战
linux·服务器·c语言·c++·嵌入式硬件·嵌入式软件·dbus
嵌入式阿蔡1 天前
HAL库 vs LL库 vs 寄存器:到底用哪个?
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
天空'之城1 天前
单片机基础核心知识点汇总(三)
单片机·嵌入式硬件
嵌入式阿蔡1 天前
CAN总线入门:从协议帧到STM32实战
c语言·stm32·单片机·嵌入式硬件·嵌入式实时数据库
恒锐丰科技韩生1 天前
率能 SS8847E|2.7~15V 双通道 H 桥电机驱动 ETSSOP16 散热封装 家电 / 打印 / 舞台灯光专用
嵌入式硬件·硬件工程