文章目录
一、初识HAL固件库
不同芯片厂商生产的基于Cortex系列芯片内核相同但外设不同,ARM与芯片厂商建立了CMSIS标准(Cortex MicroController Software Interface Standard,即Cortex 微控制器软件接口标准)。ARM公司实现内核函数层,芯片公式实现设备外设访问层,实现硬件层与操作系统层之间的抽象层,屏蔽了硬件差异。
ST公司通过HAL库对所有STM32芯片的所有寄存器控制操作进行封装,省去了我们亲自完成函数库的时间,便于我们控制外设和软件移植。
二、STM32CubeMX新建工程
-
选择CPU型号
-
确定时钟源
打开RCC选项,选择 Crystal/Ceramic Resonator,即使用外部晶振作为 HSE 的时钟源。 -
配置IO口
选择需要的IO口 -
配置系统时钟( Clock Configuration)
-
配置IO具体属性
-
配置工程属性
-
生成代码
-
配置下载调试工具
-
完善用户功能
-
下载验证
三、RCC——使用HSE/HSI配置时钟
3.1 RCC的一般配置
设置系统时钟 SYSCLK=72M、设置 AHB 分频因子( HCLK =72M)、设置 APB2分频因子(PCLK2 =72M)、设置 APB1 分频因子( PCLK1 =36M)、设置各个外设的分频因子(PLLCLK = 72M); 控制 AHB、APB2 和 APB1 这三条总线时钟的开启、控制每个外设的时钟的开启。
3.2 系统时钟
3.2.1 HSE高速外部时钟信号
由外部晶振提供时钟信号。
当PLL来源确定时,HSE可以不分频。
3.2.2 PLL时钟源
PLL时钟来源有两种:HSE或HSI/2(HSI是内部高速时钟信号,但频率会随温度和环境改变)。
一般使用HSE作为PLL时钟源。
3.2.3 PLLCLK
PLLCLK是PLL的时钟,通过设置PLL的倍频因子,可以对PLL的时钟来源进行倍频。
ST官方推荐使用72M稳定运行时钟,超频最高为128M。
3.2.4 SYSCLK
SYSCLK是系统时钟,来源有三种:HSI、PLLCLK、HSE。
一般使用SYSCLK=PLLCLK=72M。
3.2.5 HCLK
HCLK是系统时钟SYSCLK经过AHB分频后的APB总线时钟。
片上大部分外设的时钟都是通过HCLK分频得到的。
一般使用HCLK=SYSCLK=72M。
3.3.6 PCLK2
PCLK2是HCLK经过高速APB2分频后的APB2总线时钟。
片上的高速外设挂在这条总线上,比如GPIO、UART1、SPI1等等。
一般使用PCLK2=HCLK=72M。
3.3.7 PCLK1
PCLK1是HCLK经过低速APB分频后的APB1总线时钟。
片上的低速外设挂在这条总线上,比如UART2/3/4/5、SPI2/3、IIC1/2等等。
一般使用PCLK1=HCLK/2=36M。