该博客为STM32系列博客的开篇,该系列博客主要介绍STM32单片机各类外设的框架、原理、功能、使用方法及注意事项等,同时会在每篇博客的最后附上相应驱动Demo的github地址。因为意法半导体公司每年都会推出新的STM32系列单片机,所以该系列博客也会不断更新。另外,涉及Cortex-M内核的内容属于ARM架构的范畴,在这里不会过多描述。
个人认为STM32要想精通,则应该熟练掌握以下几个方面:
- 在ARM内核架构层面,应该熟悉ARM体系架构,掌握ARM汇编,同时对Cortex-M 各系列内核之间的异同点有所把握。
- 在MCU外设层面,对MCU各类外设原理、硬件框架、功能作用熟练掌握,对涉及到的外设寄存器具体作用有所了解。
- 在库函数层面,放弃STD库,学习HAL/LL库的代码框架、API接口、实现原理等。
- 在应用层面,针对经常使用的到的一些功能、应用场景,基于HAL/LL库编写例程Demo,或学习记录ST官方例程,作为储备。
如果能达到以上四点,则可以称得上完全精通了STM32,软件开发效率会极大提升,一些曾经可能需要花费几周时间来编码的项目,也许只需要几个小时就能完成。本系列的所有博客将紧密围绕着上述的四个要求展开。
STM32家族
![](https://i-blog.csdnimg.cn/blog_migrate/25384e440afbb0145069e2544acddd53.png)
外设博客入口
下表为博客目录,标题栏竖栏表示STM32系列单片机的具体外设,点击后跳转至该类外设在STM32全系列单片机中的综述,标题栏横栏表示单片机系列。内容栏中“-”表示该系列单片机没有这项功能,“Y”表示该系列单片机具备这项功能,直接点击便可转到对应博客。空白没有其他含义,表示暂时还没有整理到。
补充说明:外设综述类博客将选取STM32的某一典型系列,详细介绍该外设的主要功能、原理框图、重要寄存器、CubeMX配置界面、HAL库函数说明等内容。内容栏中各系列的具体博客主要记录该系列单片机的该外设的某些特殊说明和Demo地址。
STM32 | L0 | L1 | L4 | L4+ | L5 | G0 | G4 | F0 | F1 | F2 | F3 | F4 | F7 | H7 | WB | MP1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
存储器与总线架构 | ||||||||||||||||
时钟系统 | ||||||||||||||||
NVIC | ||||||||||||||||
HMAC | ||||||||||||||||
SHA | ||||||||||||||||
DES/TDES | ||||||||||||||||
AES | ||||||||||||||||
TRNG | ||||||||||||||||
SWPMI | ||||||||||||||||
DCMI | ||||||||||||||||
DFSDM | ||||||||||||||||
SPDIFRX | ||||||||||||||||
SAI | ||||||||||||||||
DSIHOST | ||||||||||||||||
3D GPU | ||||||||||||||||
JPEG Codec | ||||||||||||||||
TFT LCD | ||||||||||||||||
MDIOS | ||||||||||||||||
Ethernet | ||||||||||||||||
USB | ||||||||||||||||
FMC | ||||||||||||||||
FSMC | ||||||||||||||||
SDIO | ||||||||||||||||
CAN | ||||||||||||||||
FD CAN | ||||||||||||||||
LPUART | ||||||||||||||||
U(S)ART | ||||||||||||||||
FPMI2C | ||||||||||||||||
I2C | ||||||||||||||||
I2S | ||||||||||||||||
QuadSPI/OctoSPI | ||||||||||||||||
SPI | ||||||||||||||||
OPAMP | ||||||||||||||||
COMP | ||||||||||||||||
DAC | ||||||||||||||||
ADC | Y | Y | ||||||||||||||
Time | ||||||||||||||||
GPIO | Y |