STM32L4学习

STM32L4系列是围绕Cortex-M4构建,具有FPU和DSP指令集,主频高达80MHz。

STM32CubeL4简介

STM32Cube 是 ST 提供的一套性能强大的免费开发工具和嵌入式软件模块,能够让开发人员在 STM32 平台上快速、轻松地开发应用。它包含两个关键部分:

  1. 图形配置工具STM32CubeMX。允许用户通过图形化向导来生成C语言工程。
  2. 嵌入式软件包(STM32Cube库)。包含完整的HAL库(STM32硬件抽象层API),配套的中间件,以及一系列完整的例程。

库开发与寄存器开发的关系

很多用户都是从学 51 单片机开发转而想进一步学习 STM32 开发,他们习惯了 51 单片机的寄存器开发方式,突然一个 STM32 固件库摆在面前会一头雾水,不知道从何下手。

固件库就是函数的几何,固件库函数的作用是向下负责与寄存器直接打交道,向上提供用户函数调用的接口(API)。

在51的开发中我们常常的做法是直接操作寄存器,比如要控制某些IO口的状态,我们直接操作寄存器:

P0=0x11;

而在STM32的开发中,我们同样可以操作寄存器:

GPIOC->BSRR=0x00000001;

这是针对STM32L4系列
这种方法当然可以,但是这种方法的劣势是要去掌握每个寄存器的用法,才能正确STM32,而对于STM32这种级别的MCU,数百个寄存器记下来又是谈何容易。
于是ST(意法半导体)推出了官方固件库,固件库将这些寄存器底层操作都封装起来,提供一套接口(API)供开发者调用,大多数场合下,不需要去直到操作的是哪个寄存器,只需要知道调用哪些函数即可。

STM32CubeL4固件包介绍

在这里插入图片描述
Drivers文件夹
Drivers文件夹包含BSP,CMSIS和STM32L4xx_HAL_Driver三个子文件夹。

  • BSP:板级支持包,此支持包提供的是直接与硬件打交道的API,例如触摸屏,LCD,SRAM以及SSPROM等板载硬件资源等驱动。BSP文件夹下有多种ST官方Discovery开发板,Nucleo开发板以及EVAL板的硬件驱动API文件,每一种开发板对应一个文件夹。
  • CMSIS:顾名思义就是符合CMSIS标准的软件抽象层组件相关文件。文件夹内部文件比较多。主要包括DSP(DSP_LIB文件夹),Cortex-M内核及其设备文件(include文件夹),微控制器专用头文件/启动代码/专用系统文件等(Device 文件夹)。
  • STM32L4xx_HAL_Driver:这个文件夹非常重要,包含了所有的STM32L4xx系列HAL库头文件和源文件,也就是底层硬件抽象层API声明和定义。它的作用是屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数。

STM32L4总线架构

STM32L4的总线架构比51单片机就要强大很多了。
在这里插入图片描述
主系统由32位多层AHB总线矩阵构成,总线矩阵可实现以下部分互连:

五条主控总线:

  • Cortex-M4内核I总线,D总线和S总线。
  • DMA1存储器总线
  • DMA2存储器总线
    八条被控总线:
  • 内部FLASH ICode总线
  • 内部FLASH DCode总线
  • 内部SRAM1
  • 内部SRAM2
  • AHB1外设
  • AHB2外设
  • FMC和QSPI

I总线(S0):此总线用于将Cortex-M4内核的指令总线连接到总线矩阵。内核通过此总线获取指令。此总线访问的对象是包括代码的存储器。
D总线(S1):此总线用于将Cortex-M4数据总线连接到总线矩阵。内核通过此总线进行立即数加载和调试访问。
S总线(S2):此总线用于将Cortex-M4内核的系统总线连接到总线矩阵。此总线用于访问位于外设或SRAM中的数据。
DMA存储器总线(S3,S4):此总线用于将DMA存储器总线主接口连接到总线矩阵。DMA通过此总线来执行存储器数据的传入和传出,以及AHB外设或执行存储器之间的数据传输。

STM32L4时钟树概述

众所周知,时钟系统是CPU的脉搏,就像人的心跳一样。所以时钟系统的重要性就不言而喻了。
STM32L4的时钟系统比较复杂,不像简单的51单片机一个系统时钟就可以解决一切。
于是有人要问,采用一个系统时钟不是很简单吗?为什么STM32要有多个时钟源呢?因为首先STM32本身非常复杂,外设非常的多,但是并不是所有外设都需要系统时钟这么高的频率。比如看门狗以及RTC只需要几十K的时钟即可。同一个电路,时钟越快功耗越大,同时抗电磁干扰能力也会越弱,所以对于较为复杂的MCU,一般都是采用多时钟源的方法来解决这些问题。
在这里插入图片描述
在STM32L4中,有6个重要的时钟源,为HSI、HSE、LSI、LSE、MSI、PLL。
其中PLL实际是分为三个时钟源,分别为主PLL、PLLISAI1和PLLSAI2。
从时钟频率来分可以分为高速时钟源和低速时钟源,在这6个中,HSI,HSE,MSI以及PLL是高速时钟,LSI和LSE是低速时钟。从来源可分为外部时钟源和内部时钟源,外部时钟源就是从外部通过接晶振的方式获取时钟源,其中HSE和LSE是外部时钟源,其它的是内部时钟源。

  1. LSI是低速内部时钟,RC振荡器,频率为32kHz左右。供独立看门狗、RTC和LCD使用。
  2. LSE是低速外部时钟,频率为32.768kHz的石英晶体。这个主要是RTC的时钟源。
  3. HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~48MHz。我们的开发板接的是8MHz的晶振。HSE也可以直接做为系统时钟或者PLL输入。
  4. HSI是高速内部时钟,RC振荡器,频率为16MHz。可以直接作为系统时钟或者用作PLL输入。
  5. MSI时钟信号由内部RC振荡器产生,其频率范围可通过时钟控制寄存器(RCC_CR)中的MSIRANGE[3:0]位进行调整。
  6. PLL为锁相环倍频输出。STM32L4有三个PLL:
  1. 主PLL(PLL)可由HSE、HIS或者MSI提供时钟信号,并具有三个不同的输出时钟。
    第一个输出 PLLR,用于生成高速的系统时钟(SYSTEM,最高 80MHz)
    第二个输出 PLLQ,可为 USB、RNG 和 SDMMC 提供时钟源
    第三个输出 PLLP,可用于 SAI1 和 SAI2 时钟
  2. PLLSAI1 用于生成精确时钟,同样具有三个不同的输出时钟。
    第一个输出 PLLSAI1P,可用于 SAI1 和 SAI2 时钟
    第二个输出 PLLSAI1Q,可为 USB、RNG 和 SDMMC 提供时钟源。
    第三个输出 PLLSAI1R,可为 ADC 提供时钟
  3. PLLSAI2 用于生成精确时钟,具有两个不同的输出时钟。
    第一个输出 PLLSAI2P,可用于 SAI1 和 SAI2 时钟
    第二个输出 PLLSAI2R,可为 ADC 提供时钟

在这里插入图片描述
从图中可以看出,主PLL的时钟源要经过一个分频系数为M的分频器,然后经过倍频系数为N的倍频器,出来之后还需要经过分频系数为R(输出PLLR时钟)、或者P(PLLP时钟)、或者Q(输出PLLQ时钟),最后才生成最终的主PLL时钟。

  • 26
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: STM32L4 中文参考手册是一份非常重要的技术文档,为用户提供了关于 STM32L4 系列微控制器芯片的详细信息。该手册由 ST 微电子公司发布,旨在为使用 STM32L4 系列芯片的工程师和开发人员提供技术参考和帮助。 手册涵盖了 STM32L4 系列芯片的硬件特性、内核架构、存储器和时钟系统、外设控制器、电源管理和智能电源管理、信号处理、通信接口、系统调试和错误处理、固件库、安全功能、软件开发工具和环境等方面的信息。 手册提供了丰富的图表和示例,易于理解和实施。同时,手册还包括了具体的应用案例,如定时器、ADC、 DAC、I2C、SPI、 USART、USB 等应用,以帮助用户更好地了解如何使用 STM32L4 系列芯片进行系统开发。 总之,STM32L4 中文参考手册是 STM32L4 系列微控制器开发人员必备的技术参考文献,它提供了丰富的信息和应用案例,有助于工程师和开发人员更好地理解和应用 STM32L4 系列芯片,为工程项目的开发和实现提供重要帮助。 ### 回答2: STM32L4系列是意法半导体公司推出的一款64位微控制器芯片,它具有低功耗、高性能、高安全性等特点,广泛应用于消费电子、智能家居、医疗器械等领域。 STM32L4的中文参考手册是该芯片的说明书,主要介绍了芯片的技术参数、结构、寄存器及其作用、时钟控制、通信接口、DMA控制器、智能LCD控制器等方面的内容。该手册清晰易懂,结构合理,方便人们快速了解STM32L4芯片的基本原理和使用方法。 在芯片的技术参数方面,手册介绍了CPU、RAM、Flash、时钟、定时器等方面的详细规格,并对其寄存器的作用和使用方法进行了详细的说明,使使用者可以更加深入地了解该芯片的技术特点。 在通信接口方面,STM32L4支持多种通信协议,如SPI、I2C、USART等,中文参考手册详细介绍了这些通信接口的使用方法和时序图,使用户能够更加方便地使用这些接口进行数据通信。 总之,STM32L4中文参考手册是STM32L4芯片的一本详细说明书,它通过详尽的介绍和实例,帮助用户更好地了解和使用该芯片,是使用STM32L4的用户必备的参考书。 ### 回答3: STM32L4是一款基于ARM Cortex-M4内核的超低功耗微控制器,是ST公司的一款新品。STM32L4中文参考手册是对该微控制器的使用方法进行详细描述的电子文档,包含了STM32L4的所有技术规格、器件定义等信息,对于使用STM32L4进行开发、设计的工程师和爱好者而言是十分有用的参考资料。 STM32L4中文参考手册详细介绍了微控制器的各种外设和功能、程序设计的一些要点等内容,能够帮助使用者更快更好地完成开发项目。手册中配有丰富的实例和代码,方便读者理解和应用,使读者能够从知道STM32L4的基本功用到深入理解其内部设计和操作方法。 在STM32L4中文参考手册中,用户可以了解到该微控制器的特点和应用范围,学习如何配置各种外设,掌握程序设计的基本思路和技巧,熟悉各种系统调试方法等。同时,手册还提供了丰富的实用工具和相关资源,方便读者进行开发和调试。 总之,STM32L4中文参考手册是对STM32L4微控制器进行详细讲解的一份电子文档,它包含了使用此微控制器所需的一切信息,能够帮助读者更好地进行开发和设计工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饼干饼干圆又圆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值