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

相关推荐
第二层皮-合肥9 分钟前
FPGA实现ETH接口
单片机·嵌入式硬件·fpga开发
anghost15012 分钟前
基于单片机的智能声控窗帘
单片机·嵌入式硬件·mongodb
yiqiqukanhaiba3 小时前
STM32学习笔记13-通信协议I2C&MPU6050&I2C软件控制
笔记·stm32·学习
璞致电子3 小时前
【PZ-ZU47DR-KFB】璞致FPGA ZYNQ UltraScalePlus RFSOC QSPI Flash 固化常见问题说明
嵌入式硬件·fpga开发·fpga·软件无线电·sdr
陌夏微秋4 小时前
FPGA硬件设计2 最小芯片系统-ZYNQ7020/7010
嵌入式硬件·fpga开发·硬件架构·硬件工程·信息与通信·智能硬件
猫猫的小茶馆4 小时前
【STM32】HAL库中的实现(五):ADC (模数转换)
stm32·单片机·嵌入式硬件·mcu·51单片机·智能硬件·pcb工艺
紫阡星影6 小时前
【模块系列】STM32&W25Q64
stm32·单片机·嵌入式硬件
keer_zu7 小时前
STM32L051同时处理Alarm A和Alarm B中断
stm32·单片机·嵌入式硬件
酷飞飞8 小时前
STC8单片机驱动I2C屏幕:实现时间、日期与温湿度显示
单片机·嵌入式硬件·51单片机·嵌入式
源远流长jerry11 小时前
STM32之MCU和GPIO
linux·c++·stm32·单片机·嵌入式硬件