蓝桥杯嵌入式备赛指南:STM32基础知识详解
蓝桥杯嵌入式备赛指南:STM32基础知识详解
本文是关于蓝桥杯嵌入式竞赛中STM32基础知识的备赛指南,详细介绍了STM32芯片的命名规则、内部结构、时钟系统配置、内部资源地址以及不同编程库的使用。文章内容专业且深入,适合有一定嵌入式系统基础的读者阅读。
一、芯片命名规则
如上图所示,为stm的命名规则。这里,以STM32G431RBT6这个芯片为例进行说明:
(1)STM32:ST表示为公司名——意法半导体,M表示的是微控制器,32表示CPU有32根地址线,是32的控制器,理论上可以寻址4GB的地址。
(2)G431:G表示产品类型,F为基础型,而G是支持DSP和FPU指令的可适用于混合信号应用的产品,431为特定功能数字。
(3)R:为CPU引脚数,R表示有64/66引脚。
(4)B:表示闪存容量,B表示有128K字节大小。
(5)T:封装类型, H代表BGA封装,T代表LQFP封装,U代表VFQFPN封装。
(6)6:温度范围。
二、STM32芯片内部结构与Cortex-M内核
1、STM32芯片内部结构
STM32芯片为SOC,包括:Cortex-M内核、调试系统、总线存储器和片内外设,其中cortex内核和调试系统是由ARM公司负责涉及,其他芯片制造商购买知识产权之后设计芯片。
2、Cortex-M内核
Cortex-M内核为绿色框中内容,主要包括:中断控制器、调试系统、取指、译码、执行、寄存器组。
3、STM32G431RBT6内部资源和模块框图
该内容在STM32G4系列微控制器参考手册的1.5节—— Availiability of peripherals。
该内容在STM32G431RB数据手册2中的Figure 1。
三、时钟系统配置
该内容在STM32G4系列微控制器参考手册的7.2节—— Clocks。
四、STM32内部资源地址(存储空间)
1、flash起始地址:0x0800 0000
2、SRAM起始地址:0x2000 0000
3、外设起始地址:0x4000 0000
五、HAL库、LL库、标准库编程和寄存器编程
1、HAL库:ST官方推崇的新编程库;HAL是Hardware Abstraction Layer的缩写,中文名:硬件抽象层。HAL库是ST为STM32最新推出的抽象层嵌入式软件,可以更好的确保跨STM32产品的最大可移植性。HAL使用了比较大的Flash和SRAM。
2、LL库(Low Layer):是ST最近新增的库,与HAL捆绑发布,文档也是和HAL文档在一起的LL库更接近硬件层,对需要复杂上层协议栈的外设不适用,直接操作寄存器。其支持所有外设。使用方法:独立使用,该库完全独立实现,可以完全抛开HAL库,只用LL库编程完成。在使STM32CubeMX生成项目时,直接选LL库即可。如果使用了复杂的外设,例如USB,则会调用HAL库混合使用,和HAL库结合使用。编译后LL库只有HAL库的33%体积。
3、标准固件库:旧版本编程库;HAL库是ST未来主推的库,从前年开始ST新出的芯片已经没有STD库了
4、寄存器编程:原始底层编程。HAL库和标准库就是ST官方对寄存器编程进行人性化封装后的产物。